ASP.NET Core'da Kısmi Etiket Yardımcısı
Yayınlayan Scott Addie
Etiket Yardımcıları'na genel bakış için, bkz. ASP.NET Core'da Etiket Yardımcıları.
Örnek kodu görüntüleme veya indirme (indirme)
Genel Bakış
Kısmi Etiket Yardımcısı, Sayfalar ve MVC uygulamalarında kısmi bir görünümüRazor işlemek için kullanılır. Bunu göz önünde bulundurun:
- ASP.NET Core 2.1 veya sonraki bir sürümü gerektirir.
- HTML Yardımcısı söz dizimine alternatiftir.
- Kısmi görünümü zaman uyumsuz olarak işler.
Kısmi görünümü işlemeye yönelik HTML Yardımcısı seçenekleri şunlardır:
Ürün modeli, bu belgenin genelindeki örneklerde kullanılır:
namespace TagHelpersBuiltIn.Models
{
public class Product
{
public int Number { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
}
Kısmi Etiket Yardımcısı özniteliklerinin envanteri aşağıdadır.
ad
name
Özniteliği gereklidir. İşlenecek kısmi görünümün adını veya yolunu gösterir. Kısmi bir görünüm adı sağlandığında, görünüm bulma işlemi başlatılır. Açık bir yol sağlandığında bu işlem atlanır. Tüm kabul edilebilir name
değerler için bkz . Kısmi görünüm bulma.
Aşağıdaki işaretleme, Paylaşılan klasöründen _ProductPartial.cshtml
yüklendiğini belirten açık bir yol kullanır. for özniteliği kullanılarak bağlama için kısmi görünüme bir model geçirilir.
<partial name="Shared/_ProductPartial.cshtml" for="Product">
için
özniteliği geçerli for
modele göre değerlendirilecek bir ModelExpression atar. A ModelExpression
, söz dizimini çıkarsar @Model.
. Örneğin, for="Product"
yerine for="@Model.Product"
kullanılabilir. Bu varsayılan çıkarım davranışı, satır içi ifade tanımlamak için simge kullanılarak @
geçersiz kılınabilir.
Aşağıdaki işaretleme yükler _ProductPartial.cshtml
:
<partial name="_ProductPartial" for="Product">
Kısmi görünüm, ilişkili sayfa modelinin Product
özelliğine bağlıdır:
using Microsoft.AspNetCore.Mvc.RazorPages;
using TagHelpersBuiltIn.Models;
namespace TagHelpersBuiltIn.Pages
{
public class ProductModel : PageModel
{
public Product Product { get; set; }
public void OnGet()
{
Product = new Product
{
Number = 1,
Name = "Test product",
Description = "This is a test product"
};
}
}
}
model
özniteliği, model
kısmi görünüme geçirmek için bir model örneği atar. model
özniteliği for özniteliğiyle kullanılamaz.
Aşağıdaki işaretlemede, yeni Product
bir nesne örneği oluşturulur ve bağlama özniteliğine model
geçirilir:
<partial name="_ProductPartial"
model='new Product { Number = 1, Name = "Test product", Description = "This is a test" }'>
verileri görüntüleme
özniteliği kısmi view-data
görünüme geçirmek için bir ViewDataDictionary atar. Aşağıdaki işaretleme, ViewData koleksiyonunun tamamını kısmi görünüm için erişilebilir hale getirir:
@{
ViewData["IsNumberReadOnly"] = true;
}
<partial name="_ProductViewDataPartial" for="Product" view-data="ViewData">
Yukarıdaki kodda IsNumberReadOnly
anahtar değeri olarak ayarlanır true
ve ViewData koleksiyonuna eklenir. Sonuç olarak, ViewData["IsNumberReadOnly"]
aşağıdaki kısmi görünümde erişilebilir hale getirilir:
@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>
Bu örnekte değeri, ViewData["IsNumberReadOnly"]
Sayı alanının salt okunur olarak görüntülenip görüntülenmeyeceğini belirler.
HTML Yardımcısı'ndan geçiş
Aşağıdaki zaman uyumsuz HTML Yardımcısı örneğini göz önünde bulundurun. Bir ürün koleksiyonu yinelenir ve görüntülenir. Yöntemin PartialAsync
ilk parametresine göre _ProductPartial.cshtml
kısmi görünüm yüklenir. Modelin Product
bir örneği bağlama için kısmi görünüme geçirilir.
@foreach (var product in Model.Products)
{
@await Html.PartialAsync("_ProductPartial", product)
}
Aşağıdaki Kısmi Etiket Yardımcısı, HTML Yardımcısı ile aynı zaman uyumsuz işleme davranışını PartialAsync
elde eder. özniteliğine model
kısmi görünüme bağlama için bir Product
model örneği atanır.
@foreach (var product in Model.Products)
{
<partial name="_ProductPartial" model="@product" />
}
Ek kaynaklar
ASP.NET Core
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin