在我的控制器中,我有以下代码
public ActionResult Tests(int clientID, string clientName)
{
TestModel model = new TestModel (clientID, clientName);
return View(model);
}
[HttpPost]
public ActionResult Tests(TestModel model)
{
try
{
model.Save(model);
return GetClientView();
}
catch (Exception e)
{
ModelState.AddModelError("Error", e.Message);
return RedirectToAction("Tests");
}
}
我的MyPage.cshtml中有
@using (Html.BeginForm())
{
<h2> @Model.ClientName</h2>
...
<p> <input type ="submit" value="Save" id="submit" />
</p>
}
但是,点击提交按钮后,我收到错误信息
没有为此对象定义无参数构造函数。
异常详细信息: System.MissingMethodException:没有 为...定义的无参数构造函数 这个对象。
页面来源显示以下内容
<form action="/Client/Tests?clientID=891&clientName=Another%20Client" method="post">
我做错了什么?
答案 0 :(得分:3)
尝试在TestModel
:
public class TestModel
{
public TestModel()
{
}
}
这应该可以做到!
答案 1 :(得分:0)
尝试使用:
using (Html.BeginForm("Tests", "YourController")
{
<div id="create-event">
<div>
@Html.LabelFor(model => model.ClientId)
@Html.TextBoxFor(model => model.ClientId)
</div>
<div>
@Html.LabelFor(model => model.ClientName)
@Html.TextBoxFor(model => model.ClientName)
</div>
<input type="submit" value="Ok" />
</div>
}
答案 2 :(得分:0)
在保存之前,您似乎没有插入或更新模型。
使用实体框架
更新
Try
{
TryUpdateModel(model);
model.Save(model);
return GetClientView();
}
插入:
Try
{
AddToTable(model); // Table being your Entity Model's entity type name
model.Save(model);
return GetClientView();
}