通过javascript调用控制器方法
Calling a controller method via javascript
我有一个ASP.NET应用程序,在那里我从JavaScript调用控制器方法。我的JavaScript代码如下:
function OnNodeClick(s, e) {
$.ajax({
type: "POST",
url: '@Url.Action("DeviceManifests", "Home")',
data: { selectedRepo: e.node.name },
success: function (data) {
if (data != null) {
$('#GridView').html(data);
}
},
error: function (e) {
alert(e.responseText);
}
});
}
这将调用Home
控制器的DeviceManifests()
方法。这就是方法的样子:
public ActionResult DeviceManifests(Guid selectedRepo)
{
var repoItem = mock.GetRepoItem(selectedRepo);
return View("Delete", repoItem.childs);
}
方法被调用,但问题是Delete-View
没有被渲染。没有错误,只是什么都没发生。
如何更新我的代码以获得我想要的行为?
喜欢下面的代码,所以如果您有错误,您将把它放在警报框中,或者成功结果将在DOM 中呈现
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
url: '@Url.Action("DeviceManifests", "Home")',
data: { selectedRepo: e.node.name },
dataType: "html",
success: function (data) {
if (data != null) {
$('#someElement').html(data);
}
}
},
error: function (e) {
alert(e.responseText);
}
});
您可以在javascript端执行重定向。
function OnNodeClick(s, e) {
$.ajax({
type: "GET ",
url: '@Url.Action("DeviceManifests", "Home")',
data: { selectedRepo: e.node.name },
success: function (msg)
{
window.location = msg.newLoc;
}
});
}
请确保在操作中包含重定向url,并返回JsonResult而不是ActionResult。我还包括传递guid,以便目标Action并让它查找数据。
相关文章:
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 如何在单击复选框后调用控制器方法
- 如何在Angular单元测试中从另一个控制器的rootScope将方法添加到rootScope中
- 错误405:向Java控制器(Ajax)发送JSON时找不到POST方法
- 从全局函数调用Ember控制器上的方法
- 将方法从控制器注入到未使用右变量调用的指令
- Ember.js:将Em.$.getJSON转换为promise并将响应绑定到控制器上下文的正确方法
- 在嵌套递归指令中将参数传递给父控制器方法
- 为什么't我的角度控制器'在其某个方法内的作用域中的依赖项
- 如何在使用$timeout进行指令渲染后调用控制器方法
- JQuery$.ajax()发布数据以调用我的控制器中的方法
- 使用javascript将控制器方法移动到客户端
- 使用查询将对象数组发布到asp.net-mvc控制器操作的正确方法是什么
- Rails Assets Pipeline从控制器和方法加载JavaScript
- AngularJS在页面重定向上执行控制器方法
- 从填充了 AJAX 的下拉列表中获取控制器的操作方法中的值
- 如何从服务器端控制器返回或调用已签名的小程序的方法
- 如何使用 javascript 而不是使用控制器中的方法在 rails 中呈现部分按钮单击
- 控制器中的 MVC3 自动完成和开机自检方法
- 如何使用javascript express node将变量从控制器中的一个方法公开.js到另一个控制器.js