首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@Html.DropDownListFor onchange没有调用所述的操作方法

@Html.DropDownListFor onchange没有调用所述的操作方法
EN

Stack Overflow用户
提问于 2019-11-18 21:15:03
回答 1查看 94关注 0票数 1

我试图在视图中对下拉值的更改调用一个控制器方法"GetTasksList“。然而,一旦下拉列表发生变化,控制器的“编辑”方法就会被调用,并将表单提交给数据库。这是不可取的,因为我试图根据下拉值从数据库中获取任务列表。

在这里输入图像描述

视图

代码语言:javascript
复制
 @Html.DropDownListFor(x => x.AuditDecision, (SelectList)ViewBag.ListofAuditDecision, "Please select", new { @class = "form-control input-10", id = "AuditStatus", onchange = "testing();", @style = "width: 300px;" })

<script>
  function testing() {
        alert("in testing");
        document.forms[0].action = 'GetAuditTasksList';
       // window.location.href = 'GetAuditTasksList';
        document.forms[0].submit();
    }
</script>

控件转到下面的方法

代码语言:javascript
复制
 [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Edit(Audit audit)
        {
 //submitting to database
}

而不是

代码语言:javascript
复制
[HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult GetAuditTasksList(Audit audit)
        {
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-19 01:15:01

您应该使用帮助器方法为表单生成正确的操作uri。通过这种方式,您可以显式地传递任何必需的参数,并且不受将来对路由规则的任何更改的保护。例如;

代码语言:javascript
复制
    document.forms[0].action = '@Url.Action("GetAuditTasksList", ... )';
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58923004

复制
相关文章

相似问题

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