這個是我自己記得筆記,最好有點基礎看我的。
html 輔助標簽
@Html.DropList
分布視圖
使用 RenderPartialAsync 呈現分部視圖。 此方法不返回 IHtmlContent。 它將呈現的輸出直接流式傳輸到響應。 因為該方法不返回結果,所以必須在 Razor 代碼塊內調用它:微軟推薦
@{
? ? await Html.RenderPartialAsync("_AuthorPartial");
}
由于 RenderPartialAsync 流式傳輸呈現的內容,因此在某些情況下它可提供更好的性能。 在性能起關鍵作用的情況下,使用兩種方法對頁面進行基準測試,并使用生成更快響應的方法。
放在sharp下
JS,Css捆綁(.net5)
模型校驗
模型上
【RegularExpression("")】
后端校驗?
可以·傳參true排除屬性錯誤。
模型加上后,label不用寫labeltext。
@html.Raw(s.Description)正常渲染html字符串
模型綁定
【formform】表單提交post,form-data
不能寫中文
layout布局
_ViewStatrt.cshtml
推薦使用標簽助手代替html輔助標簽
@addtaghelpers *,使Microsoft.AspNetCore.mvc.TagHelpers 類在我們所有 Razor 視圖中可用
可以用了
??
<partial name="Shared/_ProductPartial.cshtml" for="Product">
model 屬性分配模型實例,以傳遞到分部視圖。model 屬性不能與 for 屬性一起使用。
在以下標記中,實例化新的 Product 對象并將其傳遞給 model 屬性進行綁定:
<partial name="_ProductPartial"
model='new Product { Number = 1, Name = "Test product", Description = "This is a test" }'>
view-data 屬性分配 ViewDataDictionary,以傳遞到分部視圖。以下標記使整個 ViewData 集合可訪問分部視圖:@{ViewData["IsNumberReadOnly"] = true;
}
<partial name="_ProductViewDataPartial" for="Product" view-data="ViewData">
在前面的代碼中,IsNumberReadOnly 鍵值設置為 true 并添加到 ViewData 集合中。因此,在以下分部視圖中可訪問 ViewData["IsNumberReadOnly"]:@model TagHelpersBuiltIn.Models.Product
<div class="form-group"><label asp-for="Number"></label>@if ((bool)ViewData["IsNumberReadOnly"]){<input asp-for="Number" type="number" class="form-control" readonly />}else{<input asp-for="Number" type="number" class="form-control" />}
</div>
<div class="form-group"><label asp-for="Name"></label><input asp-for="Name" type="text" class="form-control" />
</div>
<div class="form-group"><label asp-for="Description"></label><textarea asp-for="Description" rows="4" cols="50" class="form-control"></textarea>
</div>
自定義標簽助手
?
// 作用于所有包含 "my-id" 屬性的 <div> 標簽[HtmlTargetElement("div", Attributes = "my-id")]// 作用于所有以 "my:" 為前綴的標簽(如 <my:card>)
[HtmlTargetElement("", TagStructure = TagStructure.NormalOrSelfClosing, Prefix = "my")]
視圖組件
傳參
區域保持一致
mvc的視圖注入在 ASP.NET Core 中將依賴項注入到視圖 | Microsoft Learn