因此,我目前有一个视图,该视图需要用于显示的整个数据实体,但我只想将一个表的数据发布到控制器并进行验证。
@model MvcExample.Models.DataEntities
@using(Html.BeginForm("ActionMethod", "Controller")){
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<table id="setupTable">
<tr>
<td>@Html.LabelFor(model => model.DataField.Local.First().data, "Data:")</td>
<td>@Html.TextBoxFor(model => model.DataField.Local.First().data, new{id="dataField"})
@Html.ValidationMessageFor(model => model.DataField.Local.First().dataField)
</td>
</tr>
<input type="submit" value="submit" />
}
是否可以将其发布到ActionMethod并使用ModelState.IsValid?
[ActionName("Setup")]
[AcceptVerbs(HttpVerbs.Post)]
[ValidateAntiForgeryToken]
public ActionResult ActionMethod(FormCollection formCollection)
{
if( ModelState.IsValid )
{
// Do Stuff
db.SaveChanges();
}
var dataField= new DataField();
db.DataField.Add( dataField);
return View( db );
}
假设您有这两个模型。该MainModel
是你的整个数据集和SubsetModel
是你需要回发到一个控制器操作的数据。
public class MainModel
{
public FieldOne First {get;set}
public FieldTwo Second {get;set}
public FieldThree Third {get;set;}
public FieldFour Fourth {get;set;}
}
public class SubsetModel
{
public FieldOne First {get;set;}
public FieldTwo Second {get;set;}
}
您的Controller Action可以被告知只是期望SubSetModel重新发布。
public ActionResult DoSomething(SubsetModel subset)
{
//do something
}
在视图中,您只需要在表单中包含相关字段,或使用Javascript / JQuery将数据发布回Controller。只要您表单中的字段具有正确的名称,模型联编程序就会创建您的操作期望的SubsetModel
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句