Asp.net mvc 4 ASP.NET MVC-更改字符串值将在设置时呈现它

Asp.net mvc 4 ASP.NET MVC-更改字符串值将在设置时呈现它,asp.net-mvc-4,Asp.net Mvc 4,在我看来,如果字段中有错误,我需要将字段设置为高亮显示红色。我从控制器传递出错字段列表,如果存在匹配项,则有条件地将该类设置为errorField: <td>@(cssClass = errorFields.Contains("Field1") ? "errorField" : "") <input type="text" id="field1" name="field1" value="@form.Field1" class="@cssClass" style="width:

在我看来,如果字段中有错误,我需要将字段设置为高亮显示红色。我从控制器传递出错字段列表,如果存在匹配项,则有条件地将该类设置为errorField:

<td>@(cssClass = errorFields.Contains("Field1") ? "errorField" : "") <input type="text" id="field1" name="field1" value="@form.Field1" class="@cssClass" style="width: 5em;" /></td>
控制器将错误字段传递给ViewBag,而不是传递给模型中的错误字段

根据大卫的观点,基本上是:

class="@form.ErrorCode("Field1")"

它可以正常工作。

不要在视图中执行此操作,在模型上执行此操作

在您的例子中,您可以在模型上有一个
ErrorClass
属性(或类似名称的东西)。大概是这样的:

public string ErrorClass
{
    get
    {
        return errorFields.Contains("Field1") ? "errorField" : string.Empty;
    }
}
然后在视图中绑定到属性:

class="@Model.ErrorClass"
如果不了解您的模型,就不可能比这更具体。在这种情况下,可能有多个类,它们可能需要某种类型的集合,或者可能将错误指示器放在父模型中有集合的子模型上。也有可能(在这种情况下甚至有可能)有更简单的内置验证功能,可以实现您想要的功能

问题是,一般来说,在您的视图中,每当您尝试这样构造时:

var something = "a value";

然后,很有可能您错误地使用了视图,应该将其放在模型中。

不要在视图中执行此操作,在模型上执行此操作

在您的例子中,您可以在模型上有一个
ErrorClass
属性(或类似名称的东西)。大概是这样的:

public string ErrorClass
{
    get
    {
        return errorFields.Contains("Field1") ? "errorField" : string.Empty;
    }
}
然后在视图中绑定到属性:

class="@Model.ErrorClass"
如果不了解您的模型,就不可能比这更具体。在这种情况下,可能有多个类,它们可能需要某种类型的集合,或者可能将错误指示器放在父模型中有集合的子模型上。也有可能(在这种情况下甚至有可能)有更简单的内置验证功能,可以实现您想要的功能

问题是,一般来说,在您的视图中,每当您尝试这样构造时:

var something = "a value";

然后,很有可能您错误地使用了视图,应该将其放在模型中。

这是应该放在模型上而不是视图中的类型。视图应该只绑定到模型上的数据,模型应该在内部设置它的members.Cool。就像我说的,我一开始觉得它可能有点骇人。你知道我在哪里可以找到一个正确使用模型的类似例子吗?这是应该在模型上的类型,而不是在视图中。视图应该只绑定到模型上的数据,模型应该在内部设置它的members.Cool。就像我说的,我一开始觉得它可能有点骇人。你知道我在哪里可以找到一个正确使用模型的类似例子吗?