0

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

在此处输入图像描述

但是我收到一个错误...

在此处输入图像描述

我该如何解决这个问题?这个错误是因为这条线:int pnt = @Model.Pointer; ?

4

1 回答 1

3

是的,而且您通常过度使用@。你的代码可能应该是这样的:

@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>
    }
}

除了您的实际问题,我建议您考虑为 HtmlHelper 类编写一些扩展,即允许编写例如 Html.SubscriberListItem(number),以保持关注点正确分离和视图清洁。

另一种选择是将大部分逻辑移动到视图模型(或可能是控制器)。即可能有类似 Model.Subscribers.Link.Uri 和 Model.Subscribers.Link.Text 的东西。这甚至可能是首选选项,具体取决于您的模型的外观。(也许 uri 也应该与 RoutingTable 挂钩。)

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

于 2013-04-26T14:54:54.667 回答