سؤال

هل هناك html.element عام؟

أود أن أكون قادرًا على القيام بذلك:

Html.Element<AccountController>("IFrame", "elementName", new { src = c => c.ChangePassword })
هل كانت مفيدة؟

المحلول

إن الأنسب ، نهج "MVC-ish" لبناء محتوى HTML بالطريقة التي تصفها هي إنشاء طريقة تمديد HTMLHelper مخصصة. يجب أن تستخدم هذه الطريقة مثيل System.Web.Mvc.TagBuilder لبناء HTML. إليك مثال (تم نسخه من أحد مشاريعي الحالية ، ولكن لم يتم اختباره فعليًا في عزلة):

using System.Web.Mvc;
using System.Linq;

public static class HtmlHelperExtensions
{
    public static string Element(this HtmlHelper htmlHelper, string tag, string name, object htmlAttributes)
    {
        TagBuilder builder = new TagBuilder(tag);

        builder.GenerateId(name);
        builder.MergeAttributes(htmlAttributes);
        // use builder.AddCssClass(...) to specify CSS class names

        return builder.ToString()
    }
}

// example of using the custom HtmlHelper extension method from within a view:
<%=Html.Element("iframe", "elementName", new { src = "[action url here]" })%>

أما بالنسبة لتوسيع طريقة HTMLHelper المخصصة لدعم Lambda إجراء وحدة التحكم ، هذا المشنور هو مكان جيد للبدء.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top