2015-02-08 79 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"); 
} 
相关问题