mvc@helper 的用法

Razor中的@helper语法让您能够轻松创建可重用的帮助器方法,此方法可以在您的视图模板中封装输出功能。他们使代码能更好地重用,也使代码更具有可读性。

字面意思就封装一些我们需要常用到的方法等 方便不同的地方使用(这里的地方是视图模版)

还是看例子吧!

如图:我们好多地方都引用到css还有js

也许你其他地方也需要加载这些js或者css 也许你会说在Shared里面新建一个cshtml页面 在其他页面头部直接加:

@{
    Layout = "~/Views/Shared/Customer.cshtml";
  }

 这样也可以,不过要是比如这种情况呢?(引用网上的图片)

里面我们看到的就是if else 需求也和上面一样你说怎么办呢?

还记得我开头说的这句话吧 

@helper语法让您能够轻松创建可重用的帮助器方法,此方法可以在您的视图模板中封装输出功能。他们使代码能更好地重用,也使代码更具有可读性。

好了我们在项目解决方案中新建一个文件夹叫App_code ->新建一个tsp.cshtml 页面 名字任意定义。

 

@using System.Web.Mvc
@helper Script(string jsName,UrlHelper Url)
    {
    <script src="@Url.Content("~/Scripts/" + jsName)" type="text/javascript"></script>
}
@helper Css(string cssName, UrlHelper Url)
    {
    <link href="@Url.Content("~/Content/" + cssName)" rel="stylesheet" type="text/css" />
}

 

其他cshtml页面调用:

直接在head上:

@tsp.Css("addVehicle.css",Url)
@tsp.Script("xx.js",Url)

当然你也可以写上你的逻辑代码如图:

 

 

 

 和上面的调用方法一样 !

 

 附加 mvc弹出alert

ViewBag.Script="<script>alert('我是alert');</script>";
@Html.Raw(ViewBag.Script)

或者:

return Content("<script >alert('我是alert!');</script >", "text/html");

 还有一种:

<script type="text/javascript" >
function msgShow()
{
alrer('我是弹出框');
}
</script >

 

然后在页面判断是否调用该方法:

@if(ViewBag.Msg.ToString()=="True") { msgShow(); }

 

posted @ 2012-08-20 11:33  s_p  阅读(970)  评论(0编辑  收藏  举报