領域とルーティングの問題...ここAsp.net MVCレイアウト - 私はMVCのルーティングの問題を持っている(あるいは、少なくとも私はそれがMVCルーティング:)だと思う)
は、私の仕事の内容は、フローの
私のプロジェクトでは、私は別のユーザー賢明なlogin.thisを完全にログインセクションをカスタマイズして作成する必要があります。 これは、私のメニューバーhtmlを、そのレイアウトページのajax関数 $(document).ready(function())を呼び出すことによって追加することでした。
コード:
$(document).ready(function() {
$("#divProcessing").show();
$.ajax({
url: '@Url.Action("UICustomize", "Home")',
data: {
},
type: 'POST',
cache: false,
success: function (data) {
if (data != '')
{
$('#sidemenulist').append(data);
$("#divProcessing").hide();
}
else {
location.href = "/Home/Login";
}
}
});
});
"UICustomize"、 "ホーム"
今、UIは何も問題はありませんアップにこの部分wise.so動的にユーザーを変更しました。
その後、私は特定のモジュールのためのasp.net mvcで賢明な領域を使用する必要があります。 それから問題が発生しています。 私のパスは変更されているので、このエリアでは私はレイアウトajax関数を使用できません。
'/ ClientManagement /ホーム/ UICustomize'
私はホーム/ UICustomizeにそのパスをリダイレクトします。 これはどのように行うことができますか?ここ
はルートです: RouteConfig
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Login", id = UrlParameter.Optional }
);
エリア
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"ClientManagement_default",
"ClientManagement/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
もしあなたがエリアメソッドを必要としないなら、それを 'null'に設定してください - ' @ Url.Action( "UICustomize"、 "Home"、new {area = ""}) ' –
@StephenMueckeそれはここですか? これは私のajax呼び出しのurl-url: '@Urlです。"/ ClientManagement/Home/UICustomize '、 – TDM
私のコメントを読んでください - ' new {area = ""}}を追加して生成します'/ Home/UICustomize'を実行します。しかし、なぜあなたはメニュー/サイドバーを生成する子アクションを呼び出すために '@ Html.Action()'を使用する代わりに、このためにajaxを使用していますか? –