2012-05-09 90 views
0

验证领域我有以下领域:与HTML辅助

<div class="editor-label"> 
    @Html.LabelFor(c => c.Title) 
</div> 
<div class="editor-field"> 
    @Html.TextBoxFor(c => c.Title) 
</div> 
<p> 
    <input type="submit" value="Create" /> 
</p> 

我想确保有在提交标题的值。我知道你可以通过添加在模型中所需的属性做到这一点,但我不想给需要的属性添加到模型中。我可以验证只需要Html助手的值吗?

+1

你为什么不想要'[必需]'添加到模型?你应该使用单独的视图模型吗? – SLaks

+0

我不想所需添加到模型,因为它可能不会在所有情况下是必需的。我可以创建一个单独的视图模型,但它与我当前的模型具有相同的字段。我是否需要为所需的属性创建视图模型?这似乎过分杀人。 –

回答

4

Manually validate textbox with jQuery unobtrusive validation asp.net MVC3两者,你可以做一些与jQuery像

$('#Title').rules('add', { 
    required: true, 
    messages: { 
     required: 'The title field is required.' 
    } 
}); 

但手动插入标签到您的HTML只是添加客户端验证。我认为最好对您的实际视图模型进行某种验证。我不认为这样做太矫枉过正了。

public class BaseViewModel 
{ 
    //... 
} 

public class ViewModel1 : BaseViewModel 
{ 
    [Required] 
    public string Title { get; set; } 
} 

public class ViewModel2 : BaseViewModel 
{ 
    public string Title { get; set; } 
} 

如果视图模型有不同的规则,那么它是一个不同的视图模型。