2014-02-08 1 views
0

Просмотр кода:MVC создать запись

@model EI.Models.QuoteModel 

@using (Html.BeginForm()) { 
    @Html.AntiForgeryToken() 
    @Html.ValidationSummary(true) 

    //a bunch of input fields 

    <input type="submit" value="Create" /> 
} 

контроллер код:

public ActionResult Create(QuoteModel qm) { 
     if (ModelState.IsValid) { 
      db.QuoteModels.Add(qm); 
      db.SaveChanges(); 
      return RedirectToAction("Index"); 
     } 
     return View(); 
    } 

Я заполнить поля на представлении и нажмите кнопку «Создать», и это не делает его в метод Create ,

Что мне не хватает?

ответ

1

Поскольку вы явно не указали ActionName в вашем BeginForm помощник, это предполагает, что представление было вынесено из-за действия контроллера с тем же именем и в том же контроллере:

public ActionResult Create(int id) { 
    var qm = db.QuoteModels.Single(id); 
    return View(qm); 
} 

Если ISN» t, то вы должны явно указать название действия:

@using (Html.BeginForm("Create", null, FormMethod.Post)) 
+0

Perfect .. спасибо! – duckmike

1

Вы можете указать имя действия в методе BeginForm как так

@using (Html.BeginForm("Create", "ControllerName")) { 
@Html.AntiForgeryToken() 
@Html.ValidationSummary(true) 

    //a bunch of input fields 

    <input type="submit" value="Create" /> 
} 

Необходимо предоставить имена, если имя файла вида не совпадает с именем действия.

Смежные вопросы