সর্বশেষে আমি চেক করেছি, এর জন্য আপনাকে নিজের ভিউজাইন তৈরি করতে হবে। যদিও তারা আরসি 1 এ এটিকে আরও সহজ করেছেন কিনা আমি জানি না।
প্রথম আর সি এর আগে আমি যে বেসিক পদ্ধতির ব্যবহার করেছি সেটি ছিল আমার নিজের ভিউজাইন-এ, নিয়ামকের নাম স্থানটি বিভক্ত করতে এবং অংশগুলির সাথে মেলে এমন ফোল্ডারগুলি সন্ধান করার জন্য।
সম্পাদনা করুন:
ফিরে গিয়ে কোডটি খুঁজে পেয়েছি। এখানে সাধারণ ধারণা।
public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName)
{
string ns = controllerContext.Controller.GetType().Namespace;
string controller = controllerContext.Controller.GetType().Name.Replace("Controller", "");
//try to find the view
string rel = "~/Views/" +
(
ns == baseControllerNamespace ? "" :
ns.Substring(baseControllerNamespace.Length + 1).Replace(".", "/") + "/"
)
+ controller;
string[] pathsToSearch = new string[]{
rel+"/"+viewName+".aspx",
rel+"/"+viewName+".ascx"
};
string viewPath = null;
foreach (var path in pathsToSearch)
{
if (this.VirtualPathProvider.FileExists(path))
{
viewPath = path;
break;
}
}
if (viewPath != null)
{
string masterPath = null;
//try find the master
if (!string.IsNullOrEmpty(masterName))
{
string[] masterPathsToSearch = new string[]{
rel+"/"+masterName+".master",
"~/Views/"+ controller +"/"+ masterName+".master",
"~/Views/Shared/"+ masterName+".master"
};
foreach (var path in masterPathsToSearch)
{
if (this.VirtualPathProvider.FileExists(path))
{
masterPath = path;
break;
}
}
}
if (string.IsNullOrEmpty(masterName) || masterPath != null)
{
return new ViewEngineResult(
this.CreateView(controllerContext, viewPath, masterPath), this);
}
}
//try default implementation
var result = base.FindView(controllerContext, viewName, masterName);
if (result.View == null)
{
//add the location searched
return new ViewEngineResult(pathsToSearch);
}
return result;
}