2012-05-09 42 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; } 
} 

如果視圖模型有不同的規則,那麼它是一個不同的視圖模型。