我有一些jquery需要运行我的mvc操作并返回视图。
$("#workspaces").change(function () {
var workspaceId = $('#workspaces').val();
var url = '@Url.Action("SingleWorkspace", "Workspaces", new { id = workspaceId })';
$.ajax({
url: url,
success: function () { alert("true"); }
});
});
基本上我遇到的第一个问题是,如果在其上面声明了var,它就无法识别url动作中的workspaceId。
其次,这是一个局部视图,因为它是一个下拉菜单。所以通过调用上面的url.action,它将如何加载页面?
任何帮助将不胜感激
欢呼声
答案 0 :(得分:0)
var workspaceId = $('#workspaces').val();
var url = '@Url.Action("SingleWorkspace", "Workspaces", new { id = workspaceId })';
Url.Action
- 在客户端上选择了服务器代码(ASP.NET MVC帮助程序)和workspaceId
,这就是为什么无法在此创建url
的原因。
答案 1 :(得分:0)
首先,workspaceId
在客户端上定义,而@Url.Action
在服务器上运行,因此变量在@Url.Action
代码执行时不存在。您希望将workSpaceId
作为jQuery ajax调用的data属性发送,或者将workspaceId
附加到url javascript变量而不是客户端。
其次,如果操作返回一个局部视图,那么jQuery成功处理程序将接收一个html字符串,您可以将其注入一个元素,如div
。
答案 2 :(得分:0)
你不能在javascript中那样做。您可以做的是获取SingleWorkSpace
操作方法的路径,并将workspaceId
附加到该方法。
var url = "@Url.Action("SingleWorkspace", "Workspaces")/"+workspaceId;
或
var url = "@Url.Action("SingleWorkspace", "Workspaces")?id="+workspaceId;
答案 3 :(得分:0)
您可以使用以下内容:
var workspaceId = $('#workspaces').val();
var url = '@Url.Action("SingleWorkspace", "Workspaces", new { id = "__id__" })'
.replace('__id__', workspaceId);