2014-02-08 100 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(); 
    } 

我填寫的視場,然後單擊「創建」,並沒有使它的創建方法。

我錯過了什麼?

回答

1

因爲我們還沒有明確在BeginForm幫手指定的actionName,這是假定視圖是從具有相同名稱的控制器操作,並在同一個控制器呈現:

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

如果它不是」那麼你應該明確指定動作名稱:

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

完美..謝謝! – duckmike

1

你可以像這樣

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

    //a bunch of input fields 

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

有必要提供的名字,如果視圖文件的名稱不匹配的操作名稱在BeginForm方法指定動作的名稱。