【问题标题】:edit list of item c#编辑项目 c# 的列表
【发布时间】:2015-07-17 21:50:13
【问题描述】:

我想更新编辑页面中的项目列表, 用户传递到编辑页面并更新问题列表的请求, 请求模型已准备好使用, edit.cshtml 就像

@using (Html.BeginForm()){
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
    @foreach (var item in Model.Requesttables)
    {
        <div class="editor-label">
            @Html.LabelFor(modelItem => item.request)
        </div>
        <div class="editor-field">
            @Html.EditorFor(modelItem => item.request)
            @Html.ValidationMessageFor(modelItem => item.request)
        </div>
        <p>
            <input type="submit" value="Save" />
        </p>
    }
</fieldset>
}

控制器会怎么样??

public ActionResult Edit(List <Requesttable> requestlist)
    {//some logic here!}

【问题讨论】:

  • 您使用foreach 循环意味着您将无法在回发时绑定到任何内容。您需要 for 循环或自定义 EditorTemplate 来在集合中生成控件。请参阅this answer。并且 POST 方法中的参数需要和你传递给视图的模型相同

标签: c# asp.net asp.net-mvc entity-framework ado.net


【解决方案1】:

如果我没听错的话,你想看看控制器。首先,我认为您的控制器签名有问题。应该是这样的:

public ActionResult Edit(int id)
{
//search the object, no matter what it is - as long as it is form database by id
var db = new DbContext();
var yourRequestedList=db.Find(id); //or something like that, see linq for the correct sintax

yourRequestedList = objectThatWasEdited; 
}

我希望这对您有所帮助,并且不要忘记重构。我的 cod 不是一个好习惯,您不要在控制器方法中实例化数据库。

【讨论】:

  • 不,这不能回答问题,因为这里的 OP 似乎将模型列表发布回服务器并将其保存在一些持久存储中。
猜你喜欢
  • 1970-01-01
  • 2021-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-25
相关资源
最近更新 更多