【MVC】视图上定义和调用方法

WHY?

为什么视图上还能定义或者调用方法呢?

     我们知道MVC模式就是为了让视图和后台方法解耦合,如果把视图上定义并调用了方法,那岂不是没有优点可言了?当然这里说的定义调用方法,却是为了调用别的页面上的代码,避免重复写相同的代码而产生的,也就是相当于在A页面上,调用了B页面的html代码,这样是不是更高效了呢?!


HOW?

怎么实现定义和调用方法呢?在视图上。

在视图上有很多表达方式,下面Elsa就一一来为大家解析基本用法:

 

1、Razor C#语句块

   

@{
      for (int i =0; i<10; i++)
     {
         <div>哈哈</div>
      }
    
 }

   用@{}就可以在html中插入C#代码了。

   而Razor 引擎在MVC中的核心作用就是可以自动的在C#里面自动识别html标签。

             

          不仅能在C#中插入html代码,而且在html语句中也可以随时添加C#代码,语法:


   

      @+空格  

2、小括号的使用

    当我们想把一个方法的属性当做一个新的整体的时候,就可以加入小括号。例如


    

     <div>@(viewbag.name).name</div>

3、输出变量的语法:


   

string str="Elsa"

@str

   直接用@方法就可以输出变量,相当于

   

   

@{
     response.Write(str)
    } 


4、输出html字符串(不当成控件输出)

      

@{
    string str="<input type='text'/>"
}

@str  :razor视图会自动转义<>,编程alt;等。


当我们用@{response.write的时候,就会直接输出html文本,缺点就是输入到了页面的最上方。}


5、当我们想不输出在页面最上方,只想输出现在的位置的html文本。(不转义)

@Html.Raw(str)

直接用此方法:


@{
    HTmlstring htmlRaw=new HtmlString("<input type="button">");

    Response.Write(htmlRaw.ToHtmlString());
}



6、在视图中声明“方法”

@helper Show(string a){
   
      <div  style="border:1px">哈哈@a </div>

}

@Show("你明白了吗?")

调用了别的“方法”,节省了重复写的时间。


7、在视图中调用无返回值方法,并且可以在当前视图装传递参数给其他视图


  

@{ViewData["partData"]="哈哈";}

@{html.renderpartial("~/views/home/partview.cshtml");}

   需要带大括号


8、调用泛型方法也需要加大括号。


@{Show<object>()}


9、可以使用<text>哈哈</text>内置方法来直接输出文本。




小结:

     每天总结一点点,时间会给知识味道。








评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值