我想在我的View上有一个空表,并根据用户选择的一些下拉列表使用AJAX填充它。我的模型包含下拉列表的数据。由于表头没有变化,我希望它静态地在View上。我想知道传递给@Html.DisplayNameFor()
中使用的View列名的好方法是什么。当然,我可以传递一个记录并从中检索名称,例如
@Html.DisplayNameFor(model => model.Employees[0].LastName)
但在我看来很尴尬。我想避免向View发送数据,因为该表最初是空的,因此不使用数据本身。你能建议一个更优雅的方式吗? 感谢。
答案 0 :(得分:1)
@Html.DisplayNameFor(model => model.Employees.First().LastName)
答案 1 :(得分:-1)
我找到了一个有效的解决方案,但我不确定它是否是最好的解决方案。 首先,我的ViewModel(也就是EmployeesViewModel)我添加了一个EmployeeViewModel类型的成员:
link=html("http://www.canadiantire.ca/en/store-locator.html")
link %>% html_nodes("#container > div.clearfix > div.parbase.container.sl-closest-location-container > div.sl-closest-location-container__inner > div > div:nth-child(1) > div.sl-closest-location-container__store-name.sl-closest-location-container__active > span.sl-closest-location-container__item-name") %>% html_text()
在控制器中,我实例化我的Departments,但不是EmployeeColumnNamesRetriever ,因为我只需要它来获取元数据:
public class EmployeeViewModel
{
public int Id { get; set; }
[Display(Name = "First Name")]
public string FirstName { get; set; }
[Display(Name = "Last Name")]
public string LastName { get; set; }
public string Gender { get; set; }
public int? Salary { get; set; }
public int? DepartmentId { get; set; }
[Display(Name = "Department Name")]
public string DepartmentName { get; set; }
}
public class EmployeesViewModel
{
public SelectList Departments { get; set; }
public EmployeeViewModel EmployeeColumnNamesRetriever { get; set; }
}
在视图中:
EmployeesViewModel employees = new EmployeesViewModel
{
Departments = new SelectList(db.Departments, "Id", "Name"),
};
EmployeeColumnNamesRetriever为null,但没关系。 如果有人能提出更好的建议,我将不胜感激。