سؤال

هل سيعمل HTMLHelpers الموجودون مع Razor؟إذا كان الأمر كذلك، فهل يغير Razor أي شيء فيما يتعلق بتصميم HTMLHelpers أو استخدامه؟

شكرًا

هل كانت مفيدة؟

المحلول

نعم، يعمل المساعدون الحاليون بشكل جيد مع Razor.على سبيل المثال:

@Html.ActionLink("foo bar", "foo")

ما تغير في Razor هو أنه لديك الآن إمكانية تحديد المساعدين المضمنين مثل هذا:

@helper FooBar(string foo)
{
    <div>Hello @foo</div>
}

واستخدم مثل هذا:

@FooBar("World")

بقدر ما أو إلى هذا الحد كلاسيكي مساعدو HTML هم المعنيون، Razor لا يغير شيئًا، إنه مجرد محرك عرض، لذا يمكنك الاستمرار في كتابة مساعديك كما فعلت دائمًا:

public static class HtmlExtensions
{
    public static MvcHtmlString FooBar(this HtmlHelper htmlHelper, string value)
    {
        var builder = new TagBuilder("div");
        div.SetInnerText(value);
        return MvcHtmlString.Create(div.ToString());
    }
}

واستخدامها في الحلاقة:

@Html.FooBar("some value")

نصائح أخرى

Razor يؤدي HTML الترميز افتراضيا.

لذلك إذا انبعث أي من MVC2 HTMLHelpers ، فقد لا يعمل إذا عادوا String بدلاً من MvcHtmlString.

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