0

我创建了一个 ASP.NET MVC 3 Web 应用程序。该 Web 应用程序使用返回 List 的 WebServices (asmx)。我创建了一个视图来编辑实体,例如:

@model MvcSWTest.WSRef.entity
@{
    ViewBag.Title = "Edit";
}

@using (Html.BeginForm()) {

<h2>Edit</h2>
    @:Title:@Html.TextBoxFor(x=>x.title)<br />

    @:Date:@Html.TextBoxFor(x => x.date)<br /><br />

    <input type="submit" value="Send"/>


}

我想将“标题”设置为必填字段。我不能添加 [Required] 属性,因为“标题”是在 Web 服务上定义的。

有没有其他方法可以在视图或控制器中设置必填字段?

谢谢

4

1 回答 1

0

如果你不能适应你的实体类,你应该定义一个自定义视图模型:

public class EntityModel
{
    [Required]
    public string Title { get; set; }
    public DateTime Date { get; set; }

    public EntityModel(MvcSWTest.WSRef.entity entity)
    {
        this.Title = entity.title;
        this.Date = entity.date;
    }
}

在从 Web 服务获取数据后,立即在控制器中对其进行初始化。您调整视图以采用EntityModelas 模型,然后当您回发到控制器时,验证将检查是否Title具有有效值,如果可以,您将转换EntityModelMvcSWTest.WSRef.entity,然后再发回您的数据。

于 2013-10-24T15:31:38.963 回答