3

我无法在服务器端检索一个简单的列表。谁能指出我正确的方向?

public class TestList
{
    public string id { get; set; }
    public string name { get; set; }
    public string location { get; set; }
}

形式:

@model List<SampleMVC4App.Controllers.TestList>
@{
    ViewBag.Title = "Index";
}
<h2>
    Index</h2>
@using (Html.BeginForm())
{           
    <input name="cust" value="1" type="hidden" />
    <input name="[1].id" value="de107502-284d-459b-80a1-762ce0860cd8" type="hidden" />    
    <input name="[1].name" value="test1" type="hidden" />    
    <input name="[1].location" value="location1" type="hidden" />    
    <a id="AddAnother" href="#">Add</a>
    <input type="submit" value="submit" />
}

控制器:

[HttpPost]
public ActionResult Edit(ICollection<TestList> cust) **<---Null**
{
   return View();
}
4

3 回答 3

2

工作了几个小时后,我设法通过更改以下内容来解决

<input name="cust" value="1" type="hidden" />

<input name="Index" value="1" type="hidden" />
于 2012-09-19T02:22:54.407 回答
1

试试这个。你的模型是对的。在cshtml页面中试试这个

 @model List<SampleMVC4App.Controllers.TestList>
    @{
        ViewBag.Title = "Index";
    }
    <h2>
        Index</h2>
    @using (Html.BeginForm())
    {           
        foreach(SampleMVC4App.Controllers.TestList tl in Model)
{
     @model.hiddenfieldfor () // Like this your list will be rendered.
}
    }
于 2012-09-19T05:12:04.400 回答
0

尝试使用 Edit(FormCollection fm) 从视图中获取所有表单元素。然后在您的 httpPost 操作中处理返回的变量。在查看返回的元素时,这将使调试变得更容易。

当我使用 HttpPOST http://odetocode.com/blogs/scott/archive/2009/04/27/6-tips-for-asp-net-mvc-model-时,我发现 Scott Allen 的这篇文章很有帮助绑定.aspx

于 2012-09-19T01:57:15.313 回答