Asp.net mvc 4 在Razor中,如何从模型中获取整数属性并使用它初始化局部变量?

Asp.net mvc 4 在Razor中,如何从模型中获取整数属性并使用它初始化局部变量?,asp.net-mvc-4,razor-2,Asp.net Mvc 4,Razor 2,我有一个模型,其中包含一个名为指针的整数属性。我希望在Razor视图中使用该属性,如下所示: 然而,我得到了一个错误 我如何解决这个问题?此错误是因为以下行引起的:int pnt=@Model.Pointer?是的,您通常过度使用@。您的代码可能应该如下所示: @for (var i = 0; i < Model.Lists.ToList().Count; i++) { var pointer = Model.Pointer; if (i == pointer) {

我有一个模型,其中包含一个名为指针的整数属性。我希望在Razor视图中使用该属性,如下所示:

然而,我得到了一个错误


我如何解决这个问题?此错误是因为以下行引起的:int pnt=@Model.Pointer

是的,您通常过度使用@。您的代码可能应该如下所示:

@for (var i = 0; i < Model.Lists.ToList().Count; i++) {
    var pointer = Model.Pointer;
    if (i == pointer) {
        var url = "/Subscriber/List/" + i;
        <li><a href="@url">@Model.Lists.ToList()[i].ListName</a></li>
    }
}
for(var i=0;i } }

除了您的实际问题,我建议您考虑编写HTMLHelp类的一些扩展,即允许编写例如HTML。订阅号(Type),以保持关注点的适当分离和视图的整洁。 另一个选项是将大部分逻辑移动到视图模型(或者可能是控制器)。也就是说,可能有类似Model.Subscribers.Link.Uri和Model.Subscribers.Link.Text的内容。这甚至可能是首选选项,具体取决于模型的外观。(也许uri也应该与RoutingTable连接起来。)


您编写的代码容易抛出异常,如果您不介意我这样说的话,将逻辑从视图中移出也会使编写安全代码更容易。

是的,而且您通常过度使用@。您的代码可能应该如下所示:

@for (var i = 0; i < Model.Lists.ToList().Count; i++) {
    var pointer = Model.Pointer;
    if (i == pointer) {
        var url = "/Subscriber/List/" + i;
        <li><a href="@url">@Model.Lists.ToList()[i].ListName</a></li>
    }
}
for(var i=0;i } }

除了您的实际问题,我建议您考虑编写HTMLHelp类的一些扩展,即允许编写例如HTML。订阅号(Type),以保持关注点的适当分离和视图的整洁。 另一个选项是将大部分逻辑移动到视图模型(或者可能是控制器)。也就是说,可能有类似Model.Subscribers.Link.Uri和Model.Subscribers.Link.Text的内容。这甚至可能是首选选项,具体取决于模型的外观。(也许uri也应该与RoutingTable连接起来。)


您编写的代码很容易抛出异常,如果您不介意我这样说的话,将逻辑移出视图也会使编写安全代码更容易。

您给了我一些非常好的建议。。。我是MVC的新手,因此我不太精通“MVC方式”的思维过程。我一定会尽力实施你上面的建议。。非常感谢你。你给了我一些很好的建议。。。我是MVC的新手,因此我不太精通“MVC方式”的思维过程。我一定会尽力实施你上面的建议。。非常感谢你。