我有一个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。
非常感谢任何帮助。
谢谢,
卡罗。