Klasörün _ViewStart.cshtml
içine, /Views/Public
klasördeki varsayılan dosyayı geçersiz kılacak /Views
ve istenen düzeni belirleyecek bir dosya koyabilirsiniz :
@{
Layout = "~/Views/Shared/_PublicLayout.cshtml";
}
Benzeşime göre _ViewStart.cshtml
, /Views/Staff
klasörün içine başka bir dosya koyabilirsiniz :
@{
Layout = "~/Views/Shared/_StaffLayout.cshtml";
}
Bir denetleyici eylemi içindeki bir görünümü döndürürken hangi mizanpajın kullanılması gerektiğini de belirtebilirsiniz, ancak bu işlem başınadır:
return View("Index", "~/Views/Shared/_StaffLayout.cshtml", someViewModel);
Yine başka bir olasılık, düzeni geçersiz kılacak özel bir eylem filtresidir. Gördüğünüz gibi bunu başarmak için birçok olasılık var. Senaryonuzda hangisinin en uygun olduğunu seçmek size kalmış.
GÜNCELLEME:
Yorumlar bölümünde istendiği gibi, ana sayfayı seçecek bir eylem filtresi örneği:
public class LayoutInjecterAttribute : ActionFilterAttribute
{
private readonly string _masterName;
public LayoutInjecterAttribute(string masterName)
{
_masterName = masterName;
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
var result = filterContext.Result as ViewResult;
if (result != null)
{
result.MasterName = _masterName;
}
}
}
ve ardından istediğiniz düzeni belirten bu özel özellik ile bir denetleyici veya eylem süsleyin:
[LayoutInjecter("_PublicLayout")]
public ActionResult Index()
{
return View();
}
Razor
görünüm için düzeni kaldırmak istiyorsanız , şunu ayarlayınLayout = null;