所以我有一个视图模型:
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 并没有保存当前显示的客户端。真的不知道如何解决这个问题。
相关分类