3

私はMSDNのチュートリアルをたどっていますが、それらはすべて(私が見たものから)@Href()URLに使用されているようです。例えば

<a href="@Href("~/")">Some link</a>しかし、数か月前にここで読んだことを覚えています。Server.MapPath()を使用する方が安全です。

<a href="@Server.MapPath("~/")">Some link</a>フルパスに変換されるため、基になるコードを編集して、フォームの送信先(またはそのようなもの)を変更することはできません。これは本当ですか?

または使用する必要がありますHref()Server.MapPath()?どちらが優れているのか、そしてその理由は?

4

1 に答える 1

5

より安全に?理由はわかりませんが、Razor ではどちらも使用しません。理由は次のとおりです。

私が覚えている限りでは、Href関数は ASP.NET 1.0 の時代のものです。WebForms (!) コードを実行するときは、 ~-URL を貼り付けるだけです<a href="~/" runat="server">Some link</a>

ただし、ASP.NET MVCを実行している場合 (Razor を使用しているため、実行していると思われます) 、名前にUrl.Content()適したものを使用する必要があります。Url.Action()

于 2012-09-02T14:30:39.847 に答える