Asp.net 如何从下拉列表中获取字符串
我的控制器中有此代码用于索引视图Asp.net 如何从下拉列表中获取字符串,asp.net,asp.net-mvc,asp.net-mvc-2,Asp.net,Asp.net Mvc,Asp.net Mvc 2,我的控制器中有此代码用于索引视图 public ActionResult Index(int? id) { _viewModel.ServiceTypeListAll = new SelectList(_bvRepository.GetAllServiceTypes().ToList().OrderBy(n => n.ServiceTypeName).ToList(), "ServiceTypeId", "ServiceTypeName");
public ActionResult Index(int? id)
{
_viewModel.ServiceTypeListAll = new SelectList(_bvRepository.GetAllServiceTypes().ToList().OrderBy(n => n.ServiceTypeName).ToList(), "ServiceTypeId", "ServiceTypeName");
return View(_viewModel);
}
使用此功能,我可以在dropdownlist框中显示视图中的所有服务类型。代码是
<%=Html.DropDownList("ServiceTypeListAll", new SelectList(Model.ServiceTypeListAll,"Value","Text"))%>
我希望CategoryName应该是字符串,就像我在Dropdownlist框中显示的一样
我得到的是整数值
这是我做错了什么吗
谢谢这是HTML中选择框的外观
<select>
<option value="1">Item 1</option>
<option value="2">Item 2</option>
<option value="3">Item 3</option>
</select>
2) 获取int值后,从存储库加载适当的对象
int categoryId = Convert.ToInt32(collection["ServiceTypeListAll"]);
string categoryName = _bvRepository.Get(categoryId); // or whatever method loads your object
这是HTML中选择框的外观
<select>
<option value="1">Item 1</option>
<option value="2">Item 2</option>
<option value="3">Item 3</option>
</select>
2) 获取int值后,从存储库加载适当的对象
int categoryId = Convert.ToInt32(collection["ServiceTypeListAll"]);
string categoryName = _bvRepository.Get(categoryId); // or whatever method loads your object
dropdownlist的值是其ID属性,您将其指定为
ServiceTypeId
您需要将ID指定为
ServiceTypeName
,如下所示:
_viewModel.ServiceTypeListAll = new SelectList(_bvRepository.GetAllServiceTypes().OrderBy(n => n.ServiceTypeName), "ServiceTypeName", "ServiceTypeName");
<select name="ServiceTypeListAll">
<option value="1">Service Type 1</option>
<option value="2">Service Type 2</option>
<option value="3">Service Type 3</option>
</select>
_viewModel.ServiceTypeListAll = new SelectList(_bvRepository.GetAllServiceTypes().ToList().OrderBy(n => n.ServiceTypeName).ToList(), "ServiceTypeName", "ServiceTypeName");
<select name="ServiceTypeListAll">
<option value="Service Type 1">Service Type 1</option>
<option value="Service Type 2">Service Type 2</option>
<option value="Service Type 3">Service Type 3</option>
</select>
另外,Model.ServiceTypeListAll
已经是一个SelectList
;您不需要包装它:
<%=Html.DropDownList("ServiceTypeListAll", Model.ServiceTypeListAll)%>
dropdownlist的值是其ID属性,您将其指定为
ServiceTypeId
您需要将ID指定为
ServiceTypeName
,如下所示:
_viewModel.ServiceTypeListAll = new SelectList(_bvRepository.GetAllServiceTypes().OrderBy(n => n.ServiceTypeName), "ServiceTypeName", "ServiceTypeName");
<select name="ServiceTypeListAll">
<option value="1">Service Type 1</option>
<option value="2">Service Type 2</option>
<option value="3">Service Type 3</option>
</select>
_viewModel.ServiceTypeListAll = new SelectList(_bvRepository.GetAllServiceTypes().ToList().OrderBy(n => n.ServiceTypeName).ToList(), "ServiceTypeName", "ServiceTypeName");
<select name="ServiceTypeListAll">
<option value="Service Type 1">Service Type 1</option>
<option value="Service Type 2">Service Type 2</option>
<option value="Service Type 3">Service Type 3</option>
</select>
另外,Model.ServiceTypeListAll
已经是一个SelectList
;您不需要包装它:
<%=Html.DropDownList("ServiceTypeListAll", Model.ServiceTypeListAll)%>
对Html.DropDownList()的调用将生成如下所示的Html:
_viewModel.ServiceTypeListAll = new SelectList(_bvRepository.GetAllServiceTypes().OrderBy(n => n.ServiceTypeName), "ServiceTypeName", "ServiceTypeName");
<select name="ServiceTypeListAll">
<option value="1">Service Type 1</option>
<option value="2">Service Type 2</option>
<option value="3">Service Type 3</option>
</select>
_viewModel.ServiceTypeListAll = new SelectList(_bvRepository.GetAllServiceTypes().ToList().OrderBy(n => n.ServiceTypeName).ToList(), "ServiceTypeName", "ServiceTypeName");
<select name="ServiceTypeListAll">
<option value="Service Type 1">Service Type 1</option>
<option value="Service Type 2">Service Type 2</option>
<option value="Service Type 3">Service Type 3</option>
</select>
为了生成如下所示的html:
_viewModel.ServiceTypeListAll = new SelectList(_bvRepository.GetAllServiceTypes().OrderBy(n => n.ServiceTypeName), "ServiceTypeName", "ServiceTypeName");
<select name="ServiceTypeListAll">
<option value="1">Service Type 1</option>
<option value="2">Service Type 2</option>
<option value="3">Service Type 3</option>
</select>
_viewModel.ServiceTypeListAll = new SelectList(_bvRepository.GetAllServiceTypes().ToList().OrderBy(n => n.ServiceTypeName).ToList(), "ServiceTypeName", "ServiceTypeName");
<select name="ServiceTypeListAll">
<option value="Service Type 1">Service Type 1</option>
<option value="Service Type 2">Service Type 2</option>
<option value="Service Type 3">Service Type 3</option>
</select>
服务类型1
服务类型2
服务类型3
另外,顺便说一句,您应该能够简化HtmlHelper调用:
<%=Html.DropDownList("ServiceTypeListAll", Model.ServiceTypeListAll)%>
无需创建另一个SelectList…您对Html的调用。DropDownList()将生成如下所示的Html:
_viewModel.ServiceTypeListAll = new SelectList(_bvRepository.GetAllServiceTypes().OrderBy(n => n.ServiceTypeName), "ServiceTypeName", "ServiceTypeName");
<select name="ServiceTypeListAll">
<option value="1">Service Type 1</option>
<option value="2">Service Type 2</option>
<option value="3">Service Type 3</option>
</select>
_viewModel.ServiceTypeListAll = new SelectList(_bvRepository.GetAllServiceTypes().ToList().OrderBy(n => n.ServiceTypeName).ToList(), "ServiceTypeName", "ServiceTypeName");
<select name="ServiceTypeListAll">
<option value="Service Type 1">Service Type 1</option>
<option value="Service Type 2">Service Type 2</option>
<option value="Service Type 3">Service Type 3</option>
</select>
为了生成如下所示的html:
_viewModel.ServiceTypeListAll = new SelectList(_bvRepository.GetAllServiceTypes().OrderBy(n => n.ServiceTypeName), "ServiceTypeName", "ServiceTypeName");
<select name="ServiceTypeListAll">
<option value="1">Service Type 1</option>
<option value="2">Service Type 2</option>
<option value="3">Service Type 3</option>
</select>
_viewModel.ServiceTypeListAll = new SelectList(_bvRepository.GetAllServiceTypes().ToList().OrderBy(n => n.ServiceTypeName).ToList(), "ServiceTypeName", "ServiceTypeName");
<select name="ServiceTypeListAll">
<option value="Service Type 1">Service Type 1</option>
<option value="Service Type 2">Service Type 2</option>
<option value="Service Type 3">Service Type 3</option>
</select>
服务类型1
服务类型2
服务类型3
另外,顺便说一句,您应该能够简化HtmlHelper调用:
<%=Html.DropDownList("ServiceTypeListAll", Model.ServiceTypeListAll)%>
无需创建另一个SelectList…根本不调用
ToList()
。根本不调用ToList()
。我不需要输入我需要的项目1或项目2的号码。。在我的控制器里。感谢您的更新,感谢您抽出时间。。SLaks的解决方案对我很有效。。谢谢你能帮我写这篇文章吗。我不需要号码我需要第1项或第2项。。在我的控制器里。感谢您的更新,感谢您抽出时间。。SLaks的解决方案对我很有效。。谢谢你能帮我写这篇文章吗。渣。。你能再帮我解决一个问题吗!请我将发布不同的问题,请注意。。谢谢你。。请你看看这个帖子好吗。。渣。。你能再帮我解决一个问题吗!请我将发布不同的问题,请注意。。谢谢你。。请你看看这个帖子好吗。。