-1

この質問は、VS 2010のMVCプロジェクトフォルダー内のMVCフレームワークとファイル配置の規則に関係しています。また、プロジェクトファイルのfilename \ path規則(*.aspxおよび*.htmlからそれらを参照)にも関係しています。

質問への回答を支援するために、「PAPlus.Asp」(作成された名前)というタイトルのサンプルプロジェクトを作成しました。再現手順:VS2010SP1Rel-> File-> NewProject-> ASP.Net MVC 2 Empty Web Application-> Name ="PAPlus.Asp"を開きます

私の質問はこれです: MVC 2.0アプリケーション(以下の例)を作成し、.. \ PAPlus.Asp \ Views \ Home \ShowCuteDog.htmlにあるプロジェクトフォルダーにある*.htmlファイルをリンクしたい場合はどうすればよいですか?a href index.aspx内からのhtmlファイル?

次のDataProviderを使用しています。

  <connectionStrings>

    <add name="PaPlus"
         connectionString="Data Source=|DataDirectory|PAPlus.sdf"
         providerName="System.Data.SqlServerCe.4.0"/>

  </connectionStrings>

私は以下を作成しました:

namespace PAPlus.Asp.Models
{
    public class User
    {
        public int UserId { get; set; }
        public string UserName { get; set; }
    }
}

namespace PAPlus.Asp.Models
{
    public class PaPlus : DbContext
    {
        public DbSet<User> Users { get; set; }
    }
}

namespace PAPlus.Asp.Controllers
{
    public class HomeController : Controller
    {
        PaPlus _paPlus = new PaPlus();

        public ActionResult Index()
        {
            var users = from u in _paPlus.Users
                        select u;

            return View(users);
        }

    public ActionResult Create()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Create(User newUser)
    {
        if (ModelState.IsValid)
        {
            if (_paPlus.Users.Any(d => d.UserName == newUser.UserName))
            {
                ModelState.AddModelError("UserName", "The username is not unique");
                return View(newUser);
            }

            _paPlus.Users.Add(newUser);
            _paPlus.SaveChanges();

            return RedirectToAction("Index");
        }

        return View(newUser);

    }

}
}

ビューも作成しましたが、長すぎてここに投稿できません。bodyindex.aspxの説明を続けます。

<body>
    <div>   
        <h1>Application Users</h1>
    <ul>    
    <%
        foreach (User d in Model)
        {%>
        <li> 
            <%=d.UserName%> (<%=d.UserId%>)
        </li>
    <%
        }%>
    </ul>
    <p>
        <%=Html.ActionLink("Create New User", "Create")%>
    </p>
    <p>
        <a href="Views/Home/ShowCuteDog.html">Navigate to Cute Dog Page!</a>
    </p>
    </div>
</body>

上記のすべてを説明したので、私が支援したい特定のラインをターゲットにすることができます:

<a href="Views/Home/ShowCuteDog.html">Navigate to Cute Dog Page!</a>

明らかに、ShowCuteDog.htmlへのパスは無効です。しかし、何をしても有効なパスを入力できないようです。

を使用してShowCuteDog.htmlを開く方法を知りたいa href

また、MVCプロジェクトソリューションのフォルダー構造内のどこにShowCuteDog.htmlを保存する必要があるかを知りたいです(/ Views / Home /は最適な場所のようですが、おそらく私は間違っていますか?)

前もって感謝します。

4

1 に答える 1

1

Views 直接リンクされるコンテンツをその下に配置しないでください。そのパスへのブラウザアクセスはデフォルトでブロックされViews/web.config ていますが、これには非常に理由があります。ユーザーがそこからファイルを直接ロードすることは望ましくありません。

したがって、プレーンhtmlを別の場所に配置する必要があります。おそらく/html 代わりに?次に、次のようにリンクします<a href="/html/cutepuppies.html">

于 2012-05-13T02:15:27.557 に答える