Html 我希望创建一个下拉选择列表,其中包含可以触发http Get并刷新页面的选项项
我希望创建一个下拉选择列表,其中包含可以触发http Get并刷新页面的选项项。 我希望在单击下拉列表中的选项时在控制器操作中运行一些代码。 我使用了Html.DropdownlistFor()帮助程序,但我无法这样操作它。 这是代码,你可以更好地理解我Html 我希望创建一个下拉选择列表,其中包含可以触发http Get并刷新页面的选项项,html,asp.net-mvc,html.dropdownlistfor,Html,Asp.net Mvc,Html.dropdownlistfor,我希望创建一个下拉选择列表,其中包含可以触发http Get并刷新页面的选项项。 我希望在单击下拉列表中的选项时在控制器操作中运行一些代码。 我使用了Html.DropdownlistFor()帮助程序,但我无法这样操作它。 这是代码,你可以更好地理解我 var olist = db.ItemPackagingUnits.Where(i => i.ItemName.Equals(item.ItemName.ToUpper().Trim())); <td>
var olist = db.ItemPackagingUnits.Where(i => i.ItemName.Equals(item.ItemName.ToUpper().Trim()));
<td>
<select>
@foreach(var oitem in olist)
{
<option value ='<a href ="/Restaurant/DoSales?ItemName=@item.ItemName&PackagingUnit=@oitem.UnitOfMeasurementName&recalulatePrice=true">@oitem.UnitOfMeasurementName</a>'>@oitem.UnitOfMeasurementName</option>
}
</select>
</td>
var olist=db.itempackingunits.Where(i=>i.ItemName.Equals(item.ItemName.ToUpper().Trim());
@foreach(olist中的var oitem)
{
@oitem.UNITOF测量单位名称
}
我希望我已经就我希望实现的目标提供了足够的信息。DoSales是餐厅控制器中的一个操作,它同时具有Get和Post部分,但我只希望在用户单击生成的下拉列表中的任何选项时调用Get部分并同时刷新页面(否则我将使用Ajax或JSon)。谢谢。是的,它成功了!谢谢Mario J Vargas!下面是代码和javascript
var olist = db.ItemPackagingUnits.Where(i => i.ItemName.Equals(item.ItemName.ToUpper().Trim()));
<td>
<select onchange ="myFunc(this)">
@foreach(var oitem in olist)
{
<option value ='/Restaurant/DoSales?ItemName=@item.ItemName&PackagingUnit=@oitem.UnitOfMeasurementName&recalulatePrice=true'>@oitem.UnitOfMeasurementName</option>
}
</select>
</td>
<script type="text/javascript">
function myFunc(myDropdown) {
//var myDropdown = document.getElementById(ddname);
window.location = myDropdown.options[myDropdown.selectedIndex].value;
}
var olist=db.itempackingunits.Where(i=>i.ItemName.Equals(item.ItemName.ToUpper().Trim());
@foreach(olist中的var oitem)
{
@oitem.UNITOF测量单位名称
}
函数myFunc(myDropdown){
//var myDropdown=document.getElementById(ddname);
window.location=myDropdown.options[myDropdown.selectedIndex].value;
}
Anon,我相信你的建议有一些优点,听起来可行,但我很快就实施了Mario的建议。谢谢你的回复。事实上,没有比StackOverflow更好的地方了!再次感谢Mario和Anon。使用
DropDownListFor()
HTML帮助程序无法做到这一点。不要在值
属性中嵌入HTML,而是取出锚定标记(
)代码,保留正在生成的URL,并使用JavaScript绑定到生成的选择
元素(下拉列表)的更改
事件。然后,您可以使用JavaScript确定选择了哪个元素,并写入window.location=myDropdown.options[myDropdown.selectedIndex].value代码>。还有其他方法可以改进这一点,但一般的想法是,OPTION标记只包含您需要的内容,并将您的工作与JS结合起来处理重定向。使用Jquery绑定select list change事件,并根据该值触发ajax请求。