使用AJAX时,我是回发整个数组还是回发数组的一个元素?

时间:2012-07-30 18:36:28

标签: asp.net-mvc asp.net-mvc-3 jquery viewmodel

我没有使用AJAX(AJAX Control Toolkit)以外的Webforms。所以请原谅我的无知。但是现在我正在使用MVC 3和JQuery,我想知道处理这个问题的方法是什么。基本上,我的页面将获得List<ViewModel>。但是当我回发时,我是回发整个List<ViewModel>还是只需要更新的一个元素?处理这个问题的正常方法是什么?现在,假设我的ViewModel是:

public class activePlayer   
{
    public int UserID {get; set;};
    public string LastName {get; set;};
    public string FirstName {get; set;};
    public string Class {get; set;};
    public int XP {get; set;};
    public string activeWeapon {get; set;};
}

1 个答案:

答案 0 :(得分:1)

请注意,术语“回发”与ASP.net Web表单更相关。使用MVC框架时,您将在所需的路径上创建“http post”。

关于您的问题,您可能很可能会将您需要编辑的用户的ID发布到编辑结果中:

Public ViewResult Edit(int id)
{
  activePlayer model = // lookup model here
  return View("Edit", model)
}

反过来会呈现编辑视图:

@model <yourproject.Models.activePlayer>

@using(@Html.BeginForm())
{
  @Html.HiddenFor(m => m.UserID)
  <div>
    <div clas="editor-label>@Html.LabelFor(m => m.LastName)</div>
    <div clas="editor-field>@Html.EditorFor(m => m.LastName)</div>
  </div>
  <div>
    <div clas="editor-label>@Html.LabelFor(m => m.FirstName)</div>
    <div clas="editor-field>@Html.EditorFor(m => m.FirstName)</div>
  </div>
  // .. remaining fields
  <input type="submit" />
}