تقديم وجهة نظر جزئية مشتقة مع html.renderpartial
-
20-09-2019 - |
سؤال
الدعوة Html.RenderPartial("~/Views/Payments/MyControl.ascx");
من عرض يعمل إذا كان myControl.ascx هو عنصر تحكم يرث مباشرة System.Web.Mvc.ViewUserControl
.
ومع ذلك ، إذا ورث السيطرة فئة جديدة مستمدة من System.Web.Mvc.ViewUserControl
, ، الدعوة إلى Html.RenderPartial("~/Views/Payments/MyDerivedControl.ascx");
فشل ، الإبلاغ أنه لا يوجد مثل هذا الرأي.
مثال مشتق System.Web.Mvc.ViewUserControl
:
class MyDerivedControl : System.Web.Mvc.ViewUserControl
{
public Method()
{
ViewData["SomeData"] = "test";
}
}
هل هناك حل بديل ، أم أن هناك طريقة أخرى يجب أن أفعلها؟ ربما مساعد HTML؟
المحلول
من وجهة نظر MVC ، ليس تصميمًا جيدًا أن تقدم عرضك بيانات. عادة ما يكون هذا مسؤولية وحدة التحكم. اعتمادًا على السياق وما تمثله هذه البيانات ، يمكنك استخدام HTML Helper أو كتابة مرشح إجراء. إليك مثال مع مرشح إجراء مخصص:
public class SomeDataActionFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
filterContext.Controller.ViewData["SomeData"] = "test";
}
}
ثم تزيين عملك مع هذا المرشح:
[SomeDataActionFilter]
public ActionResult Index()
{
return View();
}
لا تنتمي إلى StackOverflow