2012-10-16 61 views
1

我有一個asp.net項目,其中包含asp.net mvc 2代碼的Area文件夾。 當我創建該區域時,它會創建一個「視圖」和一個「控制器」文件夾。從區域文件夾中的用戶控制視圖調用AJAX中的控制器方法

我的視圖是局部視圖,所以.ascx。 從這個角度來看,我想在Ajax中調用一個控制器方法。

這是我的我的看法代碼:

<script type="text/javascript"> 
    $("#<%=btnSearch.ClientID %>").click(function() { 
    var text = $("#<%=tbSearchBox.ClientID %>").val; 
    $.ajax({ 
     type: "GET", 
     url: '/Areas/Settings/User/SearchUser', 
     success: function(msg) { 
      alert("toto"); 
     } 
    }); 
    }); 
</script> 

地區是該地區的文件夾名稱,設置,其中包含了控制器和視圖文件夾中的文件夾的名稱,用戶是文件夾控制器的控制器(UserController)和SearchUser是我想調用的方法。

此時,該方法具有隻是:

/// <summary> 
/// Évènement déclenché lors de la recherche d'un utilisateur. 
/// </summary> 
/// <param name="text">Le texte à chercher.</param> 
/// <returns>OK</returns> 
public string SearchUser(string text) 
{ 
    return "OK"; 
} 

我得到的鉻:

GET http://localhost/Areas/Settings/User/SearchUser 404 (Not Found) 

我該怎麼辦?

+0

你能告訴你的路由設置? – Andrei

+0

@Andrei 這裏我的默認路由設置: 公共覆蓋無效RegisterArea(AreaRegistrationContext上下文) \t \t { \t \t \t context.MapRoute( \t \t \t \t 「Settings_default」, \t \t \t \t「設置/ {控制器} {{action}/{id}「, \t \t \t \t new {action =」Index「,id = UrlParameter.Optional}); \t \t} – blasil64

回答

0

您可以嘗試通過Url.Action(..)來代替硬編碼的URL方法:

.. 
url: '<%= Url.Action(..) %>', 
.. 
+0

我會嘗試,但我有這個錯誤:一個ViewUserControl只能用於派生自ViewPage或ViewPage頁面的頁面。 因爲我在這個指令的userControl:<%@ Control Language =「C#」Inherits =「System.Web.Mvc.ViewUserControl 」%>?感謝幫助 ! – blasil64

相關問題