0

ASP.Netで開発された古いタイプのコードビハインドスタイルの古いWebアプリがあります。最終的には、ASP.Net MVC 3で完全なWebアプリをやり直します。最初のセクションを完了し、それらを統合し始めたところです。上部に表示されるメニューに問題があります。したがって、コードには次のようなホームボタンがあります。

onclick='document.location.href=\"Home.aspx\"'>

ただし、メニューがあり、ホームアイコンを押しようとすると、Webの新しいMVC部分でURLが取得され、ページが見つかりません。

/MyWeb.Web.App/mvc/Controller/Home.aspx

実際のホームaspxページは、\ MyWeb.Web.App \ mvc\Home.aspxの場所にあります。

私は現在、JS hrefで何を編集してこの場所を指すようにすることができるかについて困惑しています。これにより、アイコンは既存の実装と新しいMVCの実装で機能します。

ありがとう。

4

1 に答える 1

1

urlsヘルパーを使用します。たとえば、Razorを使用していて、このコードがMVCビュー内にある場合:

onclick='document.location.href="@Url.Content("~/mvc/home.aspx")"'>

または、WebFormsビューエンジンを使用している場合:

onclick='document.location.href="<%= Url.Content("~/mvc/home.aspx") %>"'>

アップデート:

これが別のjavascriptファイルにある場合は、ベースURLを指すRazorビュー内でグローバル変数を宣言できます。

<script type="text/javascript">
    var baseUrl = '@Url.Content("~/mvc")';
</script>

次に、javascriptファイル内:

onclick='document.location.href=\"" + baseUrl + "/home.aspx\"'

もちろん、それを達成するためのはるかに優れた方法がありますが、シナリオについて十分な詳細を提供していないため、何が最善かを提案することは困難です。たとえばdata-*、DOMまたはその他の要素でHTML5属性を使用して、このURLを適切に生成し、javascriptファイルでアクセスできます。

于 2012-07-05T10:24:41.447 に答える