如何从JQuery调用Button on Button

时间:2012-12-23 12:43:04

标签: c# jquery asp.net-mvc-3

使用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按钮点击时调用操作。

2 个答案:

答案 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变量来的。