jquery
  • asp.net-mvc
  • 2012-09-21 92 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; 
    
    相關問題