我收到未找到我的操作方法的错误,但无法找出问题所在。我现在在互联网上搜索了几个小时,但直到现在都没有找到解决方案。
在我看来,我具有JavaScript函数:
<script type="text/javascript"> function ShowHideAds(button) { var dAds = document.getElementById("dAds"); if (dAds.style.display == "none") { dAds.style.display = "block" var txtBox = "Visible"; $.post('@Html.Action("GetState","Rights")', { txtAds: txtBox }); } else { dAds.style.display = "none" var txtBox = "Hidden"; $.post('@Html.Action("GetState", "Rights")', { txtAds: txtBox }); } } </script>
我正在文本框和列表框之间切换,并根据可见的内容,将参数传递给我的方法。
我的控制器中的方法如下:
[HttpPost, ActionName("GetState")]
public ActionResult GetState(string txtAds, string txtRg)
{
if (txtAds != null)
stateTxtAds = txtAds;
if (txtRg != null)
stateTxtRg = txtRg;
return View();
}
最后是我的路线:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
在使用@ Html.Action()方法之前,我有以下代码行:
$.post("/Rights/GetState", { txtAds: txtBox });
但是在部署项目时这不起作用,所以我尝试使用@ Html.Action两个将变量发送到控制器方法。
任何人都可以帮忙吗?
谢谢!
GetState(string txtAds, string txtRg)
有两个参数,但您只提供一个。如果您希望它接受两个,但仅像在通话中一样提供一个,请执行以下操作。
例如:
GetState(string txtAds, string txtRg = "")
通过这种方式,您可以根据需要发送txtAds
,并且可以到达。