我希望创建一个下拉选择列表,其中包含可以触发http Get和刷新页面的选项

时间:2014-06-19 17:00:47

标签: html asp.net-mvc html.dropdownlistfor

我希望创建一个下拉选择列表,其中包含可以触发http Get和刷新页面的选项。 我希望在单击下拉列表中的选项时在控制器操作中运行一些代码。 我使用了Html.DropdownlistFor()帮助器,但我无法操纵它。 这是代码,所以你可以更好地理解我,

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> 

我希望我已经提供了足够的信息来表达我希望实现的目标。 DoSales是餐厅控制器中的一个动作,它包含Get和Post部分,但我只希望在用户点击任何一个时调用get部分并同时刷新页面(否则我会使用Ajax或JSon)生成的下拉列表中的选项。谢谢。

1 个答案:

答案 0 :(得分:0)

是的,它有效!谢谢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;
    }

Anon,你的建议我认为有一些优点和听起来可行,但我很快就实现了马里奥的。谢谢你的回应。确实,没有像StackOverflow这样的地方!再次感谢Mario和Anon。