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(); }