【オリジナル】ASP.NET MVC 3開発で問題と解決方法

10206 ワード

弟はちょうどMVC 3を学んで、学习の过程の中で多くの问题に出会って、今すでに出会った问题を総括して、后で続々と更新します.私と同じ初心者に便利です.の
1.手書きModelクラス、EF実行エラーでテーブルオブジェクトが見つかりません.
[TableAttribute("ProductEntity")]
public class ProductEntity{}

2.異なるLayoutをロードし、ViewStart.cshtmlにロジックを追加
@{if (Request.Url.AbsoluteUri.Contains("Manage"))
{
Layout = "~/Views/Shared/_MLayout.cshtml";
}else{
Layout = "~/Views/Shared/_LayoutLogin.cshtml";
}
}

3.画像イメージは動的urlaを設定する.Detail/CReat/Editページ:
@model TaiQiu.Models.ProductEntity
<img id="preview" src="@Html.DisplayFor(model => model.PicUrl)"/>

b.Listページ:
@model IEnumerable<TaiQiu.Models.ProductEntity>   
@foreach (var item in Model)
{
<img src="@item.PicUrl" alt="@item.Title"/>
}

4.ユーザーのログイン/権限
//       ,     cookie
System.Web.Security.FormsAuthentication.SetAuthCookie(_user, false);
// Controller Authorize, Users/Role
[Authorize(Users/Role = / )]
public class ManageController : Controller{}

プロファイル内のForm検証
   <authentication mode="Forms">
<forms loginUrl="~/Login/" timeout="2880" />
</authentication>

5.IIS 6 MVC 3の構成
    System.Web.Razor,System.Web.MVC  。           dll      bin   

6.Viewでのコントロールスタイルの設定
@Html.TextAreaFor(model => model.Infor, new { style = "width:800px;height:400px" })

@Html.TextAreaFor(model => model.Infor, new { @class= })

7.TextArea設定Rows,Columns(2番目のパラメータはrows,3番目のパラメータはcolumns)
@Html.TextAreaFor(model => model.FileInfo,5,5, new { style="width:300px;height:100px;"})

8.ファイルのアップロード、赤色の部分を太くすることに注意
Viewコード:
@using (Html.BeginForm("actionName", "cotrollerName", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input type="file" name="FilePath" id="FilePath" />
}

Controllerコード:
HttpPostedFileBase file = Request.Files[0] as HttpPostedFileBase;
if (file.FileName != "")
{
//code
}

9.foreach、ViewBag動特性を使用
Controllerコード:
var recommendporduct = PE.ProductEntity.Where(a => a.Recommend).Take(5);
ViewBag.rplist = recommendporduct;
return View();

Viewコード:(注意:View Bagを使用しても、コードプロンプトはありません.)
       @foreach (var item in ViewBag.rplist)
{
<div class="rught_cptxt2">
<ul>
<li class="rught_cpimg1"><a href="#">
<img src="@item.PicUrl.Trim()" border="0" /></a></li>
<li class="rught_cptxt1"><a href="#">@item.Title</a></li>
</ul>
</div>
}

10.DropDownListバインドControllerコード:
        //  
public SelectList GetSL()
{// , EF
List<SelectListItem> list = new List<SelectListItem> {
new SelectListItem(){Value="0",Text=" "},
new SelectListItem(){Value="1",Text=" "}
};
return new SelectList(list, "Value", "Text");
}
public ActionResult Create()
{
ViewBag.ddl = GetSL();
return View();
}

Viewコード:
//     ViewBag   
@Html.DropDownList("ddl")
       ( GetSL()        ,    。)
@Html.DropDownListFor(model => model.IsTechnology, GetSL(), "   ")

 11.検索
a.EF4.1ではsqlの使用がサポートされています.
DbSetset= context.Set();List list =set.SqlQuery("select *from BlogMaster where UserId='3'").ToList();
b.linq to entity framework:DemoDBEntities context=new DemoDBEntities();DbSetset= context.Set();var result = from u inset.ToList()where u.UserID ==3select u;
c.labmdaクエリーを使用する:var list=set.Where(o => o.UserID ==3);var listGroup =set.GroupBy(o => o.UserID);
12.htmlタグの出力
 
@Html.Raw(  )

 
 13.@使用
  • 出力@符号:@@
  • 出力Emailアドレス:Razorテンプレートは自動的にEmailアドレスを認識するので、変換する必要はありません.一方、コードブロックでは@:[email protected]できます.@:後の内容がテキストであることを示します.
  • 出力HTMLコード(ラベルを含む):直接出力、string html="テキスト";html
  • HTMLコンテンツを出力(ラベルを含まない):IHtmlString html=new HtmlString(「テキスト);@html; 2つ目:string html="テキスト";@Html.Raw(html);

  •  
     
    未完.続きます...