PDA

View Full Version : چک کردن اینکه آیا View مورد نظر در برنامه موجود هست یا خیر



businessMg
یک شنبه 25 اسفند 1392, 09:50 صبح
برای چک کردن اینکه ویویی در برنامه موجود هست یا نه کد زیر را در اینترنت پیدا کردم.

public static bool ViewExists(this HtmlHelper html,string name)
{
var controllerContext = html.ViewContext.Controller.ControllerContext;
ViewEngineResult result = ViewEngines.Engines.FindView(controllerContext, name, null);
return (result.View != null);
}


ولی نمی دانم برای پارامتر ورودی html چه باید پاس داد؟
کسی می تواند راهنماییم کند؟

مهدی کرامتی
یک شنبه 25 اسفند 1392, 11:52 صبح
این یک نسخه بهتر همون تابع است:

private bool ViewExists(string name)
{
ViewEngineResult result = ViewEngines.Engines.FindView(ControllerContext, name, null);
return (result.View != null);
}

businessMg
یک شنبه 25 اسفند 1392, 13:54 عصر
این یک نسخه بهتر همون تابع است:

private bool ViewExists(string name)
{
ViewEngineResult result = ViewEngines.Engines.FindView(ControllerContext, name, null);
return (result.View != null);
}

خطای زیر را میدهد:

'System.Web.Mvc.ControllerContext' is a 'type' but is used like a 'variable'

مهدی کرامتی
دوشنبه 26 اسفند 1392, 05:38 صبح
در کجا این تابع رو به کار بردید؟ من در یک کلاس کنترلر قرارش دادم و کار کرد. اگر جای دیگری میخواهید این تابع را قرار دهید بفرمائید تا تغییرات را خدمت تان عرض کنم.

businessMg
دوشنبه 26 اسفند 1392, 07:56 صبح
در کجا این تابع رو به کار بردید؟ من در یک کلاس کنترلر قرارش دادم و کار کرد. اگر جای دیگری میخواهید این تابع را قرار دهید بفرمائید تا تغییرات را خدمت تان عرض کنم.

میخواهم از این تابع در view ها استفاده نمایم

مهدی کرامتی
دوشنبه 26 اسفند 1392, 09:08 صبح
در این صورت همان تکه کدی که خودتان نوشته بودید بهتر است.

یک کلاس بنام ViewUtils.cs به پروژه تان اضافه کنید و کد زیر را در آن قرار دهید:

namespace System.Web.Mvc
{
public static class ViewUtils
{
public static bool ViewExists(this HtmlHelper html, string name)
{
ControllerContext controllerContext = html.ViewContext.Controller.ControllerContext;
ViewEngineResult result = ViewEngines.Engines.FindView(controllerContext, name, null);
return (result.View != null);
}
}
}
سپس در View مورد نظر این طوری ازش استفاده کنید:
@if (Html.ViewExists("About"))
{
<p>About views exists.</p>
}
else
{
<p>About views does not exists.</p>
}

ferdin
سه شنبه 27 اسفند 1392, 21:40 عصر
برای چک کردن اینکه ویویی در برنامه موجود هست یا نه کد زیر را در اینترنت پیدا کردم.

public static bool ViewExists(this HtmlHelper html,string name)
{
var controllerContext = html.ViewContext.Controller.ControllerContext;
ViewEngineResult result = ViewEngines.Engines.FindView(controllerContext, name, null);
return (result.View != null);
}


ولی نمی دانم برای پارامتر ورودی html چه باید پاس داد؟
کسی می تواند راهنماییم کند؟

در واقع ViewExists یک ExtensionMethod برای کلاس HtmlHelper می باشد.