如何从javascript / jQuery调用新的网页

我有一个这样的按钮:

 

我编写代码来捕获click事件:

  $('#CreateButton').click(function (event) { event.preventDefault var datastore = $("#SelectedDatastore").val(); xxxxxx }); 

但是我希望在我的MVC控制器上使用一些参数来点击调用一个动作方法。 例如,参数和数据存储的值。

如果您只想转到其他页面,可以更改位置:

 window.location = "MyPage.aspx?paramater=MyParamValue"; 

或者,如果您不想更改当前页面,只是为了执行操作,请使用jQuery.get()

 $.get("MyPage.aspx", { paramater: "MyParamValue" }, function(data) { alert("Response from the server: " + data); }); 

XMLHttpRequest是这里的标准解决方案。

如果要实际更改浏览器中加载的页面,则需要将window.location属性设置为要访问的新页面的URL。 这将导致浏览器浏览到该页面,就像用户在地址栏中键入它一样。

由于它是一个Create操作,因此不应该使用GET请求,例如更改window.location 。 相反,你必须使用POST请求。 检查此代码:

 $('#CreateButton').click(function (event) { var theUrl = '<%= ResolveUrl("~/SomethingControlloer/Create")%>'; $.ajax({ type: "POST", url: theUrl, data: { }, // Data to send with request dataType: "json", success: function () {}, failure: function () { alert("Error!"); } }); }); 

当然, ResolveUrl工作,你应该已经在Global.asax.cs有一个注册的MVC路由,并且你的action方法应该有[HttpPost]属性。