ASP.NET Dropdown将空值传递给控制器​​操作

时间:2015-10-18 10:46:57

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

我有html下拉列表

@using (Html.BeginForm("SetCulture", "Home"))
{
    <fieldset>
        <select id="lngSelect" class="form-control">
            <option name="culture" id="en-us" value="en-us">Eng</option>
            <option name="culture" id="es" value="es">Es</option>
            <option name="culture" id="ar" value="ar">Ar</option>
        </select>
    </fieldset>
}

jquery脚本

<script type="text/javascript">
    (function ($) {
        $("#lngSelect").change(function () {
            $(this).parents("form").submit(); // post form
        });
    })(jQuery);

和控制器操作

public ActionResult SetCulture(string culture)
{
    ...
}

我需要将值选择选项传递给控制器​​,但传递的值为null而不是en-us,es,ar ...我试图将控制器参数的名称更改为“id”和“value”,但仍然在控制器中它是空的。

有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

name属性应位于select本身而不是option上:

<select name="culture" id="lngSelect" class="form-control">
  <option  id="en-us" value="en-us">Eng</option>
  <option  id="es" value="es">Es</option>
  <option  id="ar" value="ar">Ar</option>
</select>

答案 1 :(得分:1)

您的<select>没有name属性,因此没有要提交的名称/值对。将其更改为

<select id="lngSelect" name="culture" class="form-control">
    ....
</select>