首页 新闻 搜索 专区 学院

如何重载MVC里的@操作?

0
悬赏园豆:10 [已解决问题] 解决于 2014-06-17 19:27

就是当我们在MVC RAZOR里使用 @ 进行输出的时候的操作符号

519740105的主页 519740105 | 大侠五级 | 园豆:5810
提问于:2014-05-07 09:12
< >
分享
最佳答案
0

可以把代码写在一个类中,然后razor前端调用就可以了。

收获园豆:2
wongdavid | 菜鸟二级 |园豆:394 | 2014-05-07 15:05
其他回答(3)
0

碰到啥问题

收获园豆:3
l3oz | 园豆:586 (小虾三级) | 2014-05-07 09:34

只是想控制下输出。

支持(0) 反对(0) 519740105 | 园豆:5810 (大侠五级) | 2014-05-07 09:46

@519740105: @@ 这样

支持(0) 反对(0) l3oz | 园豆:586 (小虾三级) | 2014-05-07 09:49

@l3oz: 你这个是输出一个@符号,我要的是:@命令能调用我自己写的方法。

 

比如:

enum MyStatus
{
    Failure,
    Success,  
}

var status = MyStatus.Success;
@status

这代码输出的是Success,我希望输出为“成功”

支持(0) 反对(0) 519740105 | 园豆:5810 (大侠五级) | 2014-05-07 09:52

@519740105: 输出的时候增加逻辑么?用@helper 吧

http://www.cnblogs.com/weekend001/p/3652342.html

支持(0) 反对(0) l3oz | 园豆:586 (小虾三级) | 2014-05-07 09:55

@l3oz: 这是一个方法,跟我自己写函数来实现一样的意思,我只是想能否直接用 @status 这样简洁的方案实现。

支持(0) 反对(0) 519740105 | 园豆:5810 (大侠五级) | 2014-05-07 10:01

@519740105: 好像没什么好办法。你可以给enum的值加上Description标签,然后自己写个helper取出Description

enum MyStatus
{
    [Description("失败")]
    Failure, 

    [Description("成功")]
    Success,  
}


public class EnumHelper
{
    public static string GetDescription(Enum value)
    {
        var description = string.Empty;
        var field = value.GetType().GetField(value.ToString());

        if (field != null)
        {
            var attributes = field.GetCustomAttributes(typeof(DescriptionAttribute), false);

            if (attributes.Length > 0)
            {
                description = ((DescriptionAttribute)attributes[0]).Description;
            }
        }

        return description;
    }
}
支持(0) 反对(0) l3oz | 园豆:586 (小虾三级) | 2014-05-07 10:06
0

@符号是Razor视图引擎的东西,跟C#没关系.

没有重载这一说.像你说的

比如:

enum MyStatus { Failure, Success, } var status = MyStatus.Success; @status

这代码输出的是Success,我希望输出为“成功”

你需要重载的是MyStatus 枚举类型的Tostring方法

收获园豆:3
吴瑞祥 | 园豆:29185 (高人七级) | 2014-05-07 10:23

你这一说,倒是一个方案,但是,如何去重载ToString?

支持(0) 反对(0) 519740105 | 园豆:5810 (大侠五级) | 2014-05-27 15:30

@519740105: 有道理.我查了下,不能

支持(0) 反对(0) 吴瑞祥 | 园豆:29185 (高人七级) | 2014-05-27 16:02
-1

在razor前端,这样写:@Action.Url("后台的方法名")

收获园豆:2
小熊QQ糖 | 园豆:152 (初学一级) | 2014-05-08 15:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册