我是ASP.NET MVC和Nhibernate的新手
我遇到了这个要求,我必须在一个表中搜索显示同一页面中的数据。 用户应该能够通过四个输入进行搜索。姓名,身份证,出生日期和城市。前三个应该被键入,城市应该从一个下拉列表中选出,该下拉列表来自城市库存的不同值。
我已经开发了一个级别,用户可以从姓名,ID,出生日期进行搜索。但我在将值绑定到下拉列表时遇到了麻烦。
有人可以帮我解决这个问题。
答案 0 :(得分:1)
好的,我找到了一种方法,但我不确定它是否是最好的方法。
一个新的Model类
public class Countries
{
public virtual string citizenship { get; set; }
}
在控制器中,在我的情况下,包括get和post
TDAL tda = new TDAL();
//////////////////////
List<SelectListItem> list= new List<SelectListItem>();
list.Add(new SelectListItem { Text = "All", Value = "0" });
var cat = tda.getCountries().ToArray();
for (int i = 0; i < cat.Length; i++)
{
list.Add(new SelectListItem
{
Text = cat[i].citizenship,
Value = cat[i].citizenship.ToString(),
Selected = (cat[i].citizenship == "1")
});
}
ViewData["citizen"] = list;
////////////////////////////
return View();
DAL课程
public IList<Countries> getCountries()
{
IList<Ter.Models.Countries> countries;
IQuery query;
using (ISession session = OpenSession())
{
try
{
query = session
.CreateQuery("select distinct citizenship AS citizenship from Ters")
.SetResultTransformer(Transformers.AliasToBean<Countries>());
}
catch (Exception c)
{
query = null;
}
countries = query.List<Countries>();
}
return countries;
}
和视图
@Html.DropDownList("citizenship", (IEnumerable<SelectListItem>)ViewData["citizen"], new { id = "citizenship" })