服务器端和;客户端下拉列表

时间:2015-03-31 13:20:58

标签: c# jquery html asp.net asp.net-mvc

我有一个服务器端(html帮助程序)&客户端2下拉菜单。当第一个下拉菜单的onchange事件触发时,客户端下拉菜单被触发。那么我需要得到两个下拉列表的选定项目。

我的观点

 @using (Html.BeginForm("BasicManagement", "Admin", System.Web.Mvc.FormMethod.Post))
    {
      //Dropdown ist 1
      @Html.DropDownList("UserId", ViewBag.SupervisorList as System.Web.Mvc.SelectList, "-- Select Supervisor --", new { @class = "form-control supervisors", id = "drpsupervisors", @onchange = "getDistricts()" })

    //Dropdown list 2
    <select id="dist" class="form-control"></select>//<-- District list loaded here

    }

模型

public class PersonRole
{
    //some properties here
    public Guid DistrictId { get; set; }
}

控制器

 [HttpPost]
    public ActionResult BasicManagement(PersonRole pr)//<-- I wanted to get DistrictId to pr object.It doesn't come.
    {
      //Some code here
    }

2 个答案:

答案 0 :(得分:1)

没关系,您可以通过相同的jquery代码获取两者的值。 这是通过javascript获取的代码

$('#dist option:selected').val();
$('#drpsupervisors option:selected').val();

如果您使用表单提交,那么只需给它们与模型中的名称相同。例: 在模型中你有

public int  DistrictId { get; set; }

你的选择应该是这样的

<select name="DistrictId"></select>

和 用Razor语法

@html.DropDownlistFor(x=>x.DistrictId)

答案 1 :(得分:0)

&#34;我想把DistrictId变成pr对象。它不会来。&#34;

function getDistricts()
{
  //get ajax call however you're gettting Dropdown 2 data  
  //return a value distID for hidden model
   $("#districtID").val(distID);
}

将dropown 2值传递给隐藏模型

 @Html.HiddenFor(model => model.DistrictId, new { @ID = "districtID" })