首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从ASP.Net MVC 5中的Html.Dropdown onchange事件调用操作

从ASP.Net MVC 5中的Html.Dropdown onchange事件调用操作
EN

Stack Overflow用户
提问于 2018-06-20 03:23:45
回答 5查看 18.8K关注 0票数 0

当dropdown selected item发生变化时,我尝试调用控制器中的操作。这是我正在使用的代码,但它不起作用。

代码语言:javascript
复制
 @Html.DropDownList("UserID", null, new { @onchange = "location.href='@Url.Action("Action", "Controller")'" })

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

代码语言:javascript
复制
@Html.DropDownList("UserID", null, new { @onchange = "leaveChange(this);" })

leaveChange(控件)是我的javascript函数。

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

EN

回答 5

Stack Overflow用户

发布于 2018-06-20 04:56:13

如果htmlAttributes对象需要键值对,则不能在该对象内部调用C#方法。相反,您可以执行Url.Action方法,并在父元素的数据属性上设置结果( url),然后在javascript代码中读取该结果

代码语言:javascript
复制
<div data-submit-url="@Url.Action("ApplyVacation","Jobs")">
    @Html.DropDownList("UserID",)
</div>

在change事件中,阅读它

代码语言:javascript
复制
$(document).ready(function ()
{
    $("#UserID").change(function ()
    {
        var $this = $(this);
        var url = $this.parent().data("submit-url") + "?userId=" + $this.val();
        window.location.href = url;
    });

});

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

票数 3
EN

Stack Overflow用户

发布于 2018-06-22 18:09:21

尝试在onchange之前删除@

代码语言:javascript
复制
 @Html.DropDownList("UserID", null, new { onchange = "location.href='@Url.Action("Action", "Controller")'" })
票数 1
EN

Stack Overflow用户

发布于 2020-04-28 15:14:06

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

代码语言:javascript
复制
@Html.DropDownList("UserID", null, new { onchange = "location.href='@Url.Action("Action", "Controller", 

    new {name = "Test param", category = "Test1"})'" })
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50935586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档