2015-02-08 82 views
0

用戶在我的視圖中編輯了數據後,如何將數據返回到我的控制器,以便更新我的數據庫?將視圖中的數據返回給控制器

控制器

public ActionResult Cv(int Id) 
    { 
     Cv CvBlog = new Cv(); 
     CvPerson = db.Cv.Find(Id); 

     return View(CvBlog); 
    } 

查看示例

在這種情況下,我想對名稱

<input type="text" class="form-control" value="@Model.Name" id="name" placeholder="Name"> 

返回新值非常感謝您

+0

顯示您發回的方法。 – 2015-02-08 06:48:21

+0

創建一個字符串名稱(您的輸入框的ID)的方法作爲參數,並回發到該方法 – 2015-02-08 06:50:42

+0

我發佈到我的例子中的控制器?還是我必須創建另一個ActionResult? – 2015-02-08 06:52:03

回答

0

一個選項的值是的HTML輸入ID的增加的的放慢參數列表返回功能,像這樣:

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult Cv(int id, string name) 
{ 
    //TODO: update Cv by whatever means you determine 
    return View("Index"); 
} 

一個更好的選擇是創建一個視圖模型,將捕捉到的值(仍然基於的HTML輸入的ID)。這樣你也可以對它們做一些簡單的字段/屬性檢查。

視圖模型:

public class CvEditViewModel 
{ 
    public int Id { get; set; } 

    [Required] 
    [MaxLength(50)] 
    public string Name { get; set; } 
} 

控制器:

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult Cv(CvEditViewModel model) 
{ 
    if (ModelState.IsValid == true) 
    { 
    //TODO: update Cv by whatever means you determine 
    return View("Index"); 
    } 
    return View(model); 
} 
+0

爲了OP的好處,建議添加視圖代碼'@ Html.TextBoxFor(m => m.Name)'和'@ Html.ValidationMessageFor(m => m.Name)' – 2015-02-08 07:09:59

0

,而不是價值屬性在視圖中使用名稱屬性如下。 <input type="text" class="form-control" id="name" name="@Model.Name">

在控制器使用來獲取值string name=Request["Name"]請求[「名稱」]將用戶已進入

0

鑑於剛纔設置的名稱屬性

<input type="text" class="form-control" value="@Model.Name" name="name" id="name" placeholder="Name"> 

在控制器

[HttpPost] 
public ActionResult Cv(int id, string name) 
{ 
    //TODO: update Cv by whatever means you determine 
    return View("Index"); 
} 
相關問題