Html.DropDownListFor - 如何回发到特定的动作

时间:2017-05-03 16:58:22

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

我有一个Html.DropDownListFor会影响我页面上的其他控件。当它发生变化时,我需要对页面上的其他控件进行更改(隐藏,显示等)。我有点工作,但是当我多次更改DDL值时,我遇到了问题。

我第一次更改所选值时,它会向我在控制器中选择的操作发回(是的,我知道...不是真正的回发)。该动作完成其任务并返回视图。问题是,当我再次更改所选值时,它不会转到该操作,因为URL已更改且错误。

在我的CSHTML中,我有类似的东西:

<script type="text/javascript">
function submitFormToControllerAction(controllerName, actionName, queryStringParameters) {
    var url = controllerName + "/" + actionName;
    var $frm = $('form');
    $frm.attr("action",  url);
    $frm.attr("method", "Post");
    $frm.submit();
}

然后我从DropDownList中调用它,如:

@Html.DropDownListFor(model => model.Province, Model.ProvinceList, new onchange = @"submitFormToControllerAction('MyController', 'MyMethod');"

})

我的控制器操作类似于:

[HttpPost]
    public ActionResult MyMethod(MyModel model)
    {
        // do something here
        return View("MyController", model);
    }

第一次,我的网址如下:

  

... / MVC / myController的

更改所选值后,URL将变为:

  

... / MVC / myController的/的MyMethod

第二次更改所选值后,URL将变为:

  

... / MVC / myController的/ myController的/的MyMethod

显然,最后一个失败了。有谁知道我做错了什么?我对MVC比较陌生,并且不太了解jquery。

非常感谢任何帮助。

谢谢,

卡罗。

0 个答案:

没有答案