2016-05-16 200 views
0

我使用的.Net MVC5,我试图创建与编辑链接(或按钮)将发布(所以我不能使用ActionLink的)整个索引视图在视图中呈现的实体列表中的模型项目实体。我该怎么做?MVC5传递模型项目从视图到控制器

我的代码(到目前为止)低于

@model IEnumerable<Projname.Models.MyEntity> 
<!DOCTYPE html> 

<html> 
<head> 
    <meta name="viewport" content="width=device-width" /> 
    <title>Index</title> 
</head> 
<body> 
    <p> 
     @Html.ActionLink("Create New", "Create") 
    </p> 
    <table class="table"> 
     <tr> 

      <th> 
       @Html.DisplayNameFor(model => model.Name) 
      </th> 
      <th>Hello there</th> 
      <th>life is good</th> 
      </tr> 

    @foreach (var item in Model) { 
     <tr> 

      <td> 
       @Html.DisplayFor(modelItem => item.Name) 
      </td> 
      <td> 

       @using (Html.BeginForm("Edit", "Edit", FormMethod.Post)) 
       { 
        @Html.Hidden(mytem => item); 

      <input type="submit" value="Edit" class="btn btn-default" /> 
       } 
      </td> 
      <td>     
       @Html.ActionLink("Details", "Details", new { id = item.PrimeKey }) | 
       @Html.ActionLink("Delete", "Delete", new { id = item.PrimeKey }) 
      </td> 
      </tr> 
    } 

    </table> 
</body> 
</html> 

我假设有一个更好的方式来做到这一点,而不是为每个实体的属性创建一个隐藏字段。

+1

通myItem和刚ID /主键再从数据库中检索项当你将它传递给你的编辑视图。 – AWinkle

+0

为什么通过整个模型,只是标识会做 – scottdavidwalker

+1

@AWinkle通常我会做到这一点,但因为我使用Azure的表,只有指定查询的行键(主键)会导致不良的全表扫描http://stackoverflow.com/questions/19715885/azure-tables-query-by-rowkey-as-condition。所以我尽量避免它。 – JOW

回答

0

你需要把你想编辑或更改成形式

<form class="form-horizontal" action="GetItemsFromView" method="post"> 
    <input type="text" name="EditedModelItem"> 
</form> 

之后,您可以在您的控制器调用任何修改的项目中的项目,通过 串保持=的Request.Form [“EditedModelItem”] ;在GetItemsFromView方法中的 。

0

总结一切:

@using (Html.BeginForm("Edit", "Edit", FormMethod.Post)) 
{     
} 

然后:

public ActionResult Edit(Model model) 
{ 
     if (ModelState.IsValid) 
     { 
     } 
} 

或者:

public ActionResult Edit(FormCollection formCollection) 
{ 
} 
相关问题