2011-01-19 11 views
0

URLとルーティングの問題が続いています。
SOの回答が見つかりませんでした。
私はすべてのURL /リンクを1か所で管理したいと考えています。
asp.net mvc URL /ルーティングと集中管理する方法(C#+ js)

これは私のC#MVCコードとjs/jquery ajaxコードです。

これらのURLは、アプリケーション全体に散在しています。
プロダクションサーバーへの移行にはいくつかの修正が必要で、アプリケーション内で発生しているすべての問題を調べる必要はありません。
私はこれを一度修正しても構いませんが、一度だけしたいと思います。

どのようにグループとしてこれらのリンク/ URLのすべてを管理するための任意のアイデアは非常に感謝されます。

広告は人生を楽しむ幸せになるあなたは、特定のURLをオフに読んでアプリケーションを持っており、それらのURLはたまに変更された場合、ジュリアン

答えて

0

あなたはHtml.ActionLinkまたは Html.BuildUrlFromExpression(C => c.ControllerActionを())を使用することができT4MVC

を使用することを検討して

+0

@notAnExpert - 良い記事をありがとう。 –

0

は、異なります。これらのURLをすべてデータベーステーブル/ etcに入れ、特定のキーを使用して取得することを検討することをお勧めします。

あなたのURLが変更されたら、データベース上のURLを変更するだけで、すべてのアプリケーションが正常に動作します。

+0

おかげで私は自分のアプリケーションでのdbを使用していないと複雑にしたくありませんこの段階でのこと。 –

0

URLはRegisterRoutes staticメソッドGlobal.asaxに1か所で管理する必要があります。あなたのアプリケーションの絶対に他のすべての部分では、HTMLのヘルパーを扱う/ URLを生成するときに使用する必要があります。ヘルパーがあなたのルーティングシステムを考慮に入れているので、このようにしても問題はありません。だからではなく、書き込みの

$('#foo').click(function() { 
    $('#result').load('/mycontroller/myaction'); 
    return false; 
}); 

あなたはこのFOOを生成するHTMLヘルパーを使用します。

<%: Html.Action("foo", "myaction", "mycontroller") %> 

、その後:

$('#foo').click(function() { 
    $('#result').load(this.href); 
    return false; 
}); 

あなたの中に単一のURLをハードコードはありません唯一の集中した場所であるglobal.asaxのコースを除いて、URLを定義する必要があります。つまり、基本的には、global.asax以外の部分に/foo/barという形式のものを書いていると、間違っていることになります。

+0

これに戻るには数日かかりました.Html.Actionコードでは、コロン(:)ではなく、等号(=)が必要です。 –

+0

私はHTMLのボタンを持っています。 jQueryはdivをロードするアクションをアタッチします。 div idが#resultで、ボタンが#fooであると仮定すると、href属性を取得するにはどうすればいいですか?ボタンにはhref属性がありません。 –

関連する問題