我是asp.net的新手。我看到了“_appstart.cshtml”、“_pagestart.cshtml”和“_viewstart.cshtml”,它们的作用类似于全局页眉或页脚。
(1)如果我想在页面输出之前触发一些东西,我应该把代码放在别人的_viewstart.cshtml中吗?
(2)让C为输出前的html代码,除了将代码附加到C之外,我可以替换C中的代码吗?比如让所有文本大写或者替换一些文本?
(3)asp.net会缓存这个进程,让我每次都不会运行吗?
我是asp.net的新手。我看到了“_appstart.cshtml”、“_pagestart.cshtml”和“_viewstart.cshtml”,它们的作用类似于全局页眉或页脚。
(1)如果我想在页面输出之前触发一些东西,我应该把代码放在别人的_viewstart.cshtml中吗?
(2)让C为输出前的html代码,除了将代码附加到C之外,我可以替换C中的代码吗?比如让所有文本大写或者替换一些文本?
(3)asp.net会缓存这个进程,让我每次都不会运行吗?
苯酮
_ViewStart 文件可用于定义要在每个视图渲染开始时执行的通用视图代码。例如,我们可以在 _ViewStart.cshtml 文件中编写代码,以编程方式将每个 View 的 Layout 属性默认设置为 SiteLayout.cshtml 文件
实际上,它就像 ASP.Net 中的 BasePage,我们可以在其中保留公共代码。
或者您可以直接在视图中编写逻辑,如下所示。
@{
Layout = "~/Views/Shared/_Layout.cshtml";
if (Some Consition) {
Layout = "~/Views/Shared/_AdminLayout.cshtml";
}
}
您可以覆盖 Action Executing 方法,该方法在执行 Action 方法之前执行。您可以为特定的 Action 方法或 Complete Controller 设置它
下面是为 Complete Controller 设置它的代码。
protected override void OnActionExecuting(ActionExecutingContext ctx) {
base.OnActionExecuting(ctx);
}
以下是为特定操作方法设置它的代码
[MyAttribute(SomeProperty = "")]
public ActionResult Index()
{
return View("Index");
}
public class MyAttribute : ActionFilterAttribute
{
public string SomeProperty { get; set; }
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
}
}
您可以使用
var str = Html.Partial("_Partial_View_Name");
部分返回一个 MvcHtmlString。您可以通过将输出设置为变量来截取输出并进行必要的更改。
是的。下面是示例代码
namespace MvcApplication1.Controllers
{
[HandleError]
public class HomeController : Controller
{
[OutputCache(Duration=10, VaryByParam="none")]
public ActionResult Index()
{
return View();
}
}
}
Index() 操作的输出缓存 10 秒