ASP.NET MVC寻找错误的动作(没有参数)

时间:2017-09-10 11:34:19

标签: c# asp.net-mvc asp.net-mvc-controller

我想创建一个编辑视图,所有对于表中的一个大型模型,但会有较小的模型“用于基本信息,联系信息等,我的模型表非常大,我不想创建一个编辑查看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" />
}

1 个答案:

答案 0 :(得分:0)

您只需在Begin表单方法中指定控制器名称和操作

@using(Html.BeginForm("ActionName","ControllerName",FormMethod.Get)) // Get or Post
{
 //Some textboxes 
 <input type="submit" value="Create" class="btn btn-default" />
}