错误回发 ASP.NET MVC 的模型列表

所以我有一个视图模型:


public class ClientViewModel

{

    public int ClientID { get; set; }

    [Required]

    [DisplayName("Client Name")]

    public string Name { get; set; }

    [Required]

    [DisplayName("Client Surname")]

    public string Surname { get; set; }

}

以及我使用此视图模型的视图(用于搜索客户列表的按钮、用于按姓名对客户进行排序的按钮和用于按姓氏对客户进行排序的按钮):


@model IList<ClientViewModel>


@using (Html.BeginForm("Index", "Client", FormMethod.Post))

{

@Html.AntiForgeryToken()


<div class="form-horizontal">


<div class="form-group">

    <label class="control-label col-md-2">Enter client info:</label>

    <div class="col-md-10">

        <input type="text" id="clientInfo" name="clientInfo" value="@Session["input"]" />

    </div>

</div>


<div class="form-group">

    <div class="col-md-offset-2 col-md-10">

        <input type="submit" name="command" value="Search Client" class="btn btn-default" />

    </div>

</div>


<div class="form-group">

    <div class="col-md-offset-2 col-md-2">

        <input type="submit" name="command" value="Sort by client name" class="btn btn-default" />

    </div>

    <div class="col-md-2">

        <input type="submit" name="command" value="Sort by client surname" class="btn btn-default" />

    </div>

</div>


</div>


<table class="table">

<tr>

    <th>

        @Html.DisplayNameFor(model => model[0].Name)

    </th>

    <th>

        @Html.DisplayNameFor(model => model[0].Surname)

    </th>

</tr>


假设最初的客户是:


Name       Surname

Adam       Gnb

Brandon    Cook

Kevin      Ginger

Patrick    Star

现在,当我在 clientInfo 输入文本框中输入“g”并单击搜索按钮时,它会使用我输入的关键字正确显示客户端。输出是:


Name      Surname

Adam      Gnb

Kevin     Ginger

现在,当我单击“按客户姓氏排序”时。所需的输出是:


Name      Surname

Kevin     Ginger

Adam      Gnb

但是由于某种原因,post 方法中的 clients 参数持有客户“Adam Gnb”和“Brandon Cook”。这就是为什么输出是:


Name      Surname

Brandon   Cook

Adam      Gnb

似乎从视图返回 IList 并没有保存当前显示的客户端。真的不知道如何解决这个问题。


胡子哥哥
浏览 171回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP