[英]Strongly typed Dataset model binding in ASP.NET MVC
在我的最新项目中,我必须使用强类型数据集。 我在向POST控制器提交表单时遇到问题:我收到无参数的构造函数错误,即在控制器上找不到OrderCreate post方法。 我会寻求任何帮助。 谢谢。
这是我的简化代码:
视图:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyPortal.Models.MyTypedDataRow >" %>
<% using (Html.BeginForm("OrderCreate", "Order", FormMethod.Post))
{%>
<%: Html.ValidationSummary(true)%>
<fieldset>
<legend>Fields</legend>
<p class="fields">
<%: Html.Label("Customer")%>
<%: Html.TextBoxFor(model => model.CustomerName)%>
<%: Html.ValidationMessageFor(model => model.CustomerName)%>
</p>
<p>
<input type="submit" value="Add" />
</p>
</fieldset>
<% } %>
控制器:
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult OrderCreate()
{
MyTypedDataTable table = new MyTypedDataTable ();
MyTypedDataRow row = table.NewMyTypedDataRow();
return PartialView(row);
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult OrderCreate(FormCollection coll, MyTypedDataRow row)
{
int result = m_repo.InsertGI(row);
if (result > 0)
{
return RedirectToAction("OrderList");
}
else
{
return View("Error");
}
}
我猜想您在MyTypedDataRow上没有无参数的构造函数。 模型绑定器需要无参数的构造函数来填充项目。 您可以将所有属性单独带入方法中,并使用表的NewMyTypedDataRow方法构造行,也可以编写自定义数据绑定器,但是如果没有无参数的构造函数,您将无法使用默认值来执行操作模型活页夹。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.