2012-05-13 14 views
-1

この質問は、VS 2010のMVCプロジェクトフォルダ内のMVCフレームワークとファイルの配置規則と関係があります。プロジェクトファイルのファイル名\パスの規則(* .aspxと* .htmlを参照)と関係しています。同じVS2010ソリューションの.aspxページから.htmlページを参照するには?

質問に答えるのを助けるために、私は "PAPlus.Asp"(メークアップ名)というタイトルのサンプルプロジェクトを作成しました。再現手順:オープンVS2010SP1Rel->ファイル - > NewProject-> ASP.Net MVC 2空のWebアプリケーション - >名前= "PAPlus.Asp"

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

私は、次のデータプロバイダを使用しています:

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); 

    } 

} 
} 

私はまた、VIEWSを作成したが、彼らはあまりにも長い間ここに投稿する:

<connectionStrings> 

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

    </connectionStrings> 

は、私は次のように作成しました。私はindex.aspxの body示す私の説明を続けます:明らかに

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

パス:上記の説明のすべてで

<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> 

を、私は私がの支援をしたいと思い、特定の行をターゲットにすることができますto ShowCuteDog.htmlは無効です。しかし、私は何をしても有効なパスを入力することはできません。

私はa href

を使用してShowCuteDog.htmlを開く方法を知りたいのですが、私はまた、私は私のMVCプロジェクトソリューションのフォルダ構造(/ビュー/ホーム内ShowCuteDog.htmlを保存する場所を知っていただきたいと思います/のように思えます最高の場所、おそらく私は間違っていますか?)

ありがとうございます。

答えて

1

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

だから、あなたは普通のHTMLをどこか別の場所に置くべきです。おそらく/htmlにあるでしょうか?それから、<a href="/html/cutepuppies.html">

+0

私は「リソースが見つかりません」というエラーが表示されます。私のプロジェクトが実行され、ブラウザーがロードされます:http:// localhost:49560/html/cutepuppies.htmlとエラーが表示されます。 – sapbucket

+0

ファイルがあることを確認する必要があります。もちろん。そして、私はあなたとは違った名前を使用していました。それを適宜変更してください。 –

+0

は完璧に機能しました。私は \ Views \ html \を \ html \に移動し、リンクが機能しました。ありがとうございました – sapbucket

関連する問題