如何从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]
属性。