jquery
  • asp.net-mvc
  • 2012-09-21 60 views 0 likes 
    0

    我有一些jquery下面显示需要运行我的mvc操作并返回视图。MVC的jQuery呼叫操作控制器不工作

    $("#workspaces").change(function() { 
        var workspaceId = $('#workspaces').val(); 
        var url = '@Url.Action("SingleWorkspace", "Workspaces", new { id = workspaceId })'; 
        $.ajax({ 
         url: url, 
         success: function() { alert("true"); } 
        }); 
    }); 
    

    基本上我的第一个问题是,它不能识别url action中的workspaceId,如果var声明在它之上。

    其次,这是局部视图,因为它是一个下拉菜单。所以通过调用上面的url.action它将如何加载页面?

    任何帮助,将不胜感激

    欢呼

    回答

    0

    您可以使用下列内容:

    var workspaceId = $('#workspaces').val(); 
    var url = '@Url.Action("SingleWorkspace", "Workspaces", new { id = "__id__" })' 
        .replace('__id__', workspaceId); 
    
    +0

    我更喜欢这种方法。它工作得很好。在成功之后,我基本上使用了window.location.href ='这里的网址',它将我重定向到了我需要的页面 – tjhack

    0
    var workspaceId = $('#workspaces').val(); 
        var url = '@Url.Action("SingleWorkspace", "Workspaces", new { id = workspaceId })'; 
    

    Url.Action - 是服务器代码(ASP.NET MVC助手)和workspaceId在客户选择,这就是为什么url不能在这里创建。

    0

    首先,在客户端上定义了workspaceId,而在服务器上运行的是@Url.Action,因此该代码在执行代码时不存在该变量。您想发送workSpaceId作为jQuery ajax调用的数据属性,或者将workspaceId附加到url javascript变量,而不是在客户端上。其次,如果该动作返回一个局部视图,例如,那么jQuery成功处理程序将收到一个html字符串,您可以将其注入到一个元素中,例如div

    0

    你不能这样做在JavaScript中。你可以做的是得到SingleWorkSpace行动方法的路径,并附加workspaceId

    var url = "@Url.Action("SingleWorkspace", "Workspaces")/"+workspaceId; 
    

    var url = "@Url.Action("SingleWorkspace", "Workspaces")?id="+workspaceId; 
    
    相关问题