在我的最新项目中,我必须使用强类型的DataSet。我有一个问题提交表单到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");
}
}
答案 0 :(得分:1)
我猜你在MyTypedDataRow上没有无参数构造函数。模型绑定器需要无参数构造函数来填充项。您可以将所有属性单独地放入方法并使用表的NewMyTypedDataRow方法构造行,或者您可以编写自定义数据绑定器,但是如果没有无参数构造函数,您将无法执行您尝试使用默认值执行的操作模型活页夹。
答案 1 :(得分:0)