从ASP.Net MVC 5

时间:2018-06-19 19:23:45

标签: razor model-view-controller asp.net-mvc-5 dropdown

当所选下拉列表项发生更改时,我正在尝试在控制器中调用操作。这是我正在使用的代码,但无法正常工作。

 @Html.DropDownList("UserID", null, new { @onchange = "location.href='@Url.Action("Action", "Controller")'" })

正确的语法是什么?我试图调用一个javascript函数,它起作用了。

@Html.DropDownList("UserID", null, new { @onchange = "leaveChange(this);" })

leaveChange(control)是我的JavaScript函数。

但是,我无法调用控制器的动作。另外,如何将所选项目的值传递给操作?

5 个答案:

答案 0 :(得分:2)

您不能在htmlAttributes对象内调用C#方法的地方,因为它需要键值对。相反,您可以执行Url.Action方法并在父元素的data属性上设置结果(网址),然后从您的javascript代码中读取该内容

<div data-submit-url="@Url.Action("ApplyVacation","Jobs")">
    @Html.DropDownList("UserID",)
</div>

在更改事件中,请阅读

$(document).ready(function ()
{
    $("#UserID").change(function ()
    {
        var $this = $(this);
        var url = $this.parent().data("submit-url") + "?userId=" + $this.val();
        window.location.href = url;
    });

});

当用户在SELECT上进行选择时,此代码将使用查询字符串键/Jobs/ApplyVacation导航到userId URL,并将所选的选项值作为该值。根据您的代码,根据需要更新名称。

答案 1 :(得分:1)

如果要将parameters传递给action,可以使用

@Html.DropDownList("UserID", null, new { onchange = "location.href='@Url.Action("Action", "Controller", 

    new {name = "Test param", category = "Test1"})'" })

答案 2 :(得分:0)

这就是我所做的

 @Html.DropDownList("UserID", null,new {@id = "leve" })

jQuery代码如下:

<script type="text/javascript">

                $('#leve').change(function () {
                    var url = "/UserRoles/TellMeDate";
                    var name = $('#leve').val();
                    $.get(url, { parameter: name }, function (data) {
                        alert(data);
                    });


                })

            });         




        </script>

控制器:

public string TellMeDate(string parameter)
    {


            return DateTime.Today.ToString() +"-->>>"+ parameter + "!!!!";


    }

答案 3 :(得分:0)

尝试在onchange之前删除@

Class A {

public static String data = "1";

    public static void main(String[] s) {

        //I would like to intercept this field access
        System.out.println(data);
        //I would like to intercept this field data modification
        data ="2";
    }
}

答案 4 :(得分:0)

此代码对我有用:

onchange = "location.href='" + @Url.Action("AdmissionRequirement", "Profile") + "'"