使用ASP.NET MVC,我想在JQuery的Button Click上调用控制器的动作。
控制器:
public class HomeController : Controller
{
//
// GET: /Home/
public ActionResult Index()
{
return View();
}
public ActionResult PersonInfo(string name, string city)
{
// other code for assign ViewData
return View();
}
}
我在Index.chtml页面中有两个textBox和一个Button。我想像“http://localhost:2526/PersonName”一样显示网址。对于城市我想要可选的参数并且不想要在Url中。所以,我按如下方式绘制了路线:
routes.MapRoute(
"Default", // Route name
"",
new { controller = "Home", action = "Index" } // Parameter defaults
);
routes.MapRoute(
"PersonInfo", // Route name
"{name}", // URL with parameters
new { controller = "Home", action = "PersonInfo", name= "" , city = ""} // Parameter defaults
如果我输入Url,如“http://localhot:2526/John”,则从浏览器中,然后成功显示PersonInfo视图。
我访问了link我的问题。但我也想传递参数。
任何人都可以帮助我如何在JQuery按钮点击时调用操作。
答案 0 :(得分:0)
您可以将参数作为查询字符串传递,例如:
$('#buttonId').click(function(){
document.location =
'@Url.Action("MyAction","MyController")'+'?'+'parameterToSend = @value';
});
你的链接就像
MyController/MyAction?parameterToSend=value
答案 1 :(得分:0)
您希望在Url.Action方法中添加参数,以避免主机末尾的/。
@ Url.Action(“PersonInfo”,“Home”,new {name = Model.Name,city = Model.City}) //我相信这会查看你的路线并生成localhost:2526 / John / JohnsCity
您的参数是否属于您的模型?如果是这样,以上将起作用。如果不是你可以使用1AmirJalali的答案,但在附加参数之前替换/,因为如果它们的参数不是你的模型的一部分那么它们可能是通过javascript变量来的。