【オリジナル】ASP.NET MVC 3開発で問題と解決方法
10206 ワード
弟はちょうどMVC 3を学んで、学习の过程の中で多くの问题に出会って、今すでに出会った问题を総括して、后で続々と更新します.私と同じ初心者に便利です.の
1.手書きModelクラス、EF実行エラーでテーブルオブジェクトが見つかりません.
2.異なるLayoutをロードし、ViewStart.cshtmlにロジックを追加
3.画像イメージは動的urlaを設定する.Detail/CReat/Editページ:
b.Listページ:
4.ユーザーのログイン/権限
プロファイル内のForm検証
5.IIS 6 MVC 3の構成
6.Viewでのコントロールスタイルの設定
7.TextArea設定Rows,Columns(2番目のパラメータはrows,3番目のパラメータはcolumns)
8.ファイルのアップロード、赤色の部分を太くすることに注意
Viewコード:
Controllerコード:
9.foreach、ViewBag動特性を使用
Controllerコード:
Viewコード:(注意:View Bagを使用しても、コードプロンプトはありません.)
10.DropDownListバインドControllerコード:
Viewコード:
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タグの出力
13.@使用出力@符号:@@ 出力Emailアドレス:Razorテンプレートは自動的にEmailアドレスを認識するので、変換する必要はありません.一方、コードブロックでは@:[email protected]できます.@:後の内容がテキストであることを示します. 出力HTMLコード(ラベルを含む):直接出力、string html="テキスト";html HTMLコンテンツを出力(ラベルを含まない):IHtmlString html=new HtmlString(「テキスト);@html; 2つ目:string html="テキスト";@Html.Raw(html);
未完.続きます...
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の使用がサポートされています.
DbSet
b.linq to entity framework:DemoDBEntities context=new DemoDBEntities();DbSet
c.labmdaクエリーを使用する:var list=set.Where(o => o.UserID ==3);var listGroup =set.GroupBy(o => o.UserID);
12.htmlタグの出力
@Html.Raw( )
13.@使用
未完.続きます...