我想创建一个编辑视图,所有对于表中的一个大型模型,但会有较小的模型“用于基本信息,联系信息等,我的模型表非常大,我不想创建一个编辑查看20个文本框。
所以这是问题我用参数id创建HttpGet
动作,用模型创建HttpPost
。当我发送表单时,我收到错误System.MissingMethodException
,我没有没有参数的Action方法..
Kontrahenci
是来自EF for table的模型。
DaneOglneKontrahenta
是辅助类,只发送6个变量而不是20个。
[HttpGet]
public ActionResult EdytujDaneOgolne(int? id)
{
if (id == null)
{
Redirect("Index");
}
Kontrahenci kontrahent = db.Kontrahenci.Find(id);
if (kontrahent == null)
{
Redirect("Index");
}
DaneOglneKontrahenta model = new DaneOglneKontrahenta(kontrahent);
return View(model);
}
发布方法:
[HttpPost]
public ActionResult EdytujDaneOgolne(int id, DaneOglneKontrahenta kontrahent)
{
Kontrahenci kontrahentModel = db.Kontrahenci.Find(id);
if (kontrahentModel == null)
{
Redirect("Index");
}
kontrahentModel.Nazwa = kontrahent.Nazwa;
kontrahentModel.NazwaSkrocona = kontrahent.NazwaSkrocona;
kontrahentModel.NIP = kontrahent.NIP;
kontrahentModel.Komentarz = kontrahent.Komentarz;
kontrahentModel.UwagiDS = kontrahent.UwagiDS;
kontrahentModel.UwagiZlecenie = kontrahent.UwagiZlecenie;
db.SaveChanges();
return View("Detalis");
}
然后在视图中:
@using(Html.BeginForm())
{
//Some textboxes
<input type="submit" value="Create" class="btn btn-default" />
}
答案 0 :(得分:0)
您只需在Begin表单方法中指定控制器名称和操作
@using(Html.BeginForm("ActionName","ControllerName",FormMethod.Get)) // Get or Post
{
//Some textboxes
<input type="submit" value="Create" class="btn btn-default" />
}