精华内容
下载资源
问答
  • ASP.NET MVC Razor视图(2)

    2019-10-07 18:39:25
    昨天介绍了一些Razor的基本语法,几天接着下说: 补成一个,上次介绍了怎么输出原样的文本,用<text></text>标签,下面再介绍一种语法: @{@:我爱北京} 这个@:我爱北京必须写在@{}C#代码段中,否则报错 1....

    昨天介绍了一些Razor的基本语法,几天接着向下说:

    补成一个,上次介绍了怎么输出原样的文本,用<text></text>标签,下面再介绍一种语法:

    @{@:我爱北京}  这个@:我爱北京必须写在@{}C#代码段中,否则报错

     

    1.输出@符号怎么做?

    在Razor中,我们用@@输出”@”,类似于C#中”//”

    2.我们可以在Razor使用Response.Write(),Server,Request,Session,这是为什么呢?

    我们反编译.cshtml,生成一个前台类,这个类继承了WebViewPage<object>

    2

    我们在前台类中没有看到Session、Server等等属性,那么去找它的父类WebViewPage<object>,父类也没找到,再找父类的父类,一次类推,终于在

    3

     

    WebPageRenderingBase类中找到了,它在里面定义了我们想要的属性。

    3.如何在Razor视图里定义方法?

    我们在这里使用:

    @helper Hello(string a){
                <span>我爱北京天安门 @a</span>
            }
        @Hello("天安门上太阳升")

    上文我介绍过,视图会编译成一个前台类,这个类有一个Execute()方法,会将视图上的静态内容和C#代码进行字符串拼接,如果我在视图上定义方法,岂不是在方法中定义方法吗?这是一个疑问,那么我们通过反编译来解决这些疑问。

    4

    我们从上图上可以看到我们在视图中定义的Hello方法,返回值是HelperResult,这里我们可以知道只要你在视图上定义的方法返回值都是HelperResult类.所以这里就不存在在方法中定义方法了。

    现在又有一个疑问了,我们采用Mvc模式的原因是为了让UI与业务分离开来,你又在UI中定义业务这不是多次一举吗?

    解释:我们一般不在视图上定义方法,定义方法的目的是为了解决视图上要重复输出Html代码的情况,比如说我现在要在视图上不同位置多次输出<span>我爱北京天安门</span>,因为位置不同不能用for循环,多次写对程序员有负担,这里就用到了我们定义的方法了。

     

    4.在一个视图上请求另一个视图

    假设我们在Home控制器下的Index方法有一个Index.cshtml视图,现在我要在Index视图上请求Home控制器的一个Check.cshtml视图。

    那么这就用到了

    //在视图中调用 无返回值的方法必须使用代码段@{}
    @{Html.RenderPartial("check");}
    
    //调用其他视图文件下的视图
    @{Html.RenderPartial("~/Views/Dept/Index.cshtml");}
    
    //想将当前视图的数据传递到check视图上
    可以使用ViewBag、ViewData、TempData等
    @{
        ViewBag.CName="你好啊";
        Html.RenderPartial("check");
    }

    在视图中调用 有返回值 的方法不需要加@{},由此可以看出@后直接跟变量 或 带返回值的方法,会直接在此输出 变量内容 或方法返回值

    @Html.TextBox("txtname")

    视图中请求视图

     

    与之对应的还有一个方法就是@{Html.RenderAction(“check“);}

    视图中请求视图

    从上面两个图可以看出他们都能从一个视图上请求另一个视图,但是两个请求的方式并不一样,使用RenderPartial方法我在Index视图上直接请求check.cshtml,而RenderAction是去请求/home/check ,两个的方式不同。

    但是你查看网页源代码的时候会发现请求的视图中含有

    12

    这样不是很友好。

    下次我将介绍分布视图。

    希望各位看官批评指正

    转载于:https://www.cnblogs.com/changfutao/p/5001332.html

    展开全文
  • 我们都知道使用servlet时可以...虽Struts2的Action返回的也是字然符串,但是这个字符串并不是将这个字符串传给网页,实际上它映射到一个物理视图的,也就是网页。 那么怎么让Struts2返回一个字符串呢?——使用...

    我们都知道使用servlet时可以直接用PrintWriter对象的print方法来向页面传送一些字符串(可以是html标签和内容),然后在用RequestDispatcher来转向网页

     

    虽Struts2的Action返回的也是字然符串,但是这个字符串并不是将这个字符串传给网页,实际上它映射到一个物理视图的,也就是网页。

     

    那么怎么让Struts2返回一个字符串呢?——使用JSON

     

    在Struts2的lib下有个struts2-json-plugin-version.jar,将其复制到WEB-INF/lib下,如果使用了eclipse,还得右键->Buld Path->add to buil path

     

    然后配置action:

     

    /****方式一 添加注解:****/
    
    @ParentPackage(value="json-default")
    @Result(type="json", params={"noCache", "true", "contentType", "text/html"})
    
    
    
    /****方式二 配置struts.xml***/
    
    <package extends="json-default">
        <action name="notice" class="com.xxx.action.NoticeAction">
            <result type="json">
                    <param name="noCache">true</param>
                    <param name="contentType">text/html</param>
            </result>
        </action>
    
    </package>

    其中noCache这个属性设置“是否取消浏览器缓存”,改为true将增加文件头。

    父包json-default是死的。

    配置结果为json后,execute的返回值没有了任何意义

    那么这个json的内容是什么?

     

    实际上,struts2会将该action中getter的名字/返回值 当作json 的键/值。

    如: 你的action中有个String getContent()方法,返回值是"哈哈",那么生成的json字符串为:{"content":"哈哈"}

    要注意的是,即使你没有content这个属性,也能生成对应的json

     

     然后在JSP画面,使用jquery发送/接收请求(JSON.parse需要下载JSON.js):

    $(document).ready(function() {
        $.get("notice", 
            function(json) {
                        $("#cc").html(JSON.parse(json).content);
            }
        );
    });    

     

    转载于:https://www.cnblogs.com/lanhj/p/3377209.html

    展开全文
  • 切换“仅音频选项卡”视图 ⌘+ S Ctrl + S 跳回上一个标签 ⌘+移+ U Ctrl + Shift + U 跳到结果中的第n个标签 ⌥ + [1-9]  alt + [1-9] 在结果中的第n个选项卡上切换静音 移+ [1-9] 浏览选项卡列表 ▲ / ...
  • jade include和extends、block

    千次阅读 2017-10-16 19:22:13
    jade模板是MVC模型中的V--视图,可以编写网页文件,元素和HTML相同,基本使用就是将html中的标签尖括号去掉,如: ... jade:p 这是jade中的写法 ...jade中采用的方法是缩进,子标签比父标签后缩进两个空

    jade模板是MVC模型中的V--视图,可以编写网页文件,元素和HTML相同,基本使用就是将html中的标签尖括号去掉,如:

    HTML:<p>这是HTML中的写法</p>

    jade:p 这是jade中的写法

    上述两种写法的显示效果相同

    但是在jade中没有结束标签,浏览器或者说编译器(从jade编译输出成HTML)是怎么判断每个标签的结束范围呢

    jade中采用的方法是缩进,子标签比父标签向后缩进两个空格,同一级别的缩进表示同一级别的元素

    jade中的缩进很重要,而且容易出错,使用时要谨慎处理缩进

    如:

    doctype html
    html
      head
        title 主页
        meta(charset='utf-8')
      body
          h1 This is login
    上述代码会自动编译成

    <!DOCTYPE html>
    <html>
      <head>
        <title>主页</title>
        <meta charset="utf-8">
      </head>
      <body>
        <h1>This is login</h1>
      </body>
    </html>


    在jade中还提供了两种使用外部jade的方法include和extends

    include例子如下:

    bodey.jade文件内容:

    doctype html
    html 
      include ./header.jade
      body
        h1 This is body
    header.jade文件内容如下:

    head
      title jade-include测试
      meta(charset='utf-8')

    生成的HTML文件如下:

    <!DOCTYPE html>
    <html> 
      <head>
        <title>jade-include测试</title>
        <meta charset="utf-8">
      </head>
      <body>
        <h1>This is body</h1>
      </body>
    </html>

    内容没错,注意代码中的缩进,在body.jade中使用include时,include是和body同级,因为此时直接把header.jade中的内容拿过来放在include位置(保持原有缩进)处,head会和body同级,但是在使用中如果把include顶个和html同级,在header文件中把所有的内容向后缩进两格,这样的结果是不行的,编译会出错,不知道为什么

    另外在使用include时还有一个问题,就是吧head标签和html放在一起的时候,具体例子如下:

    header中的内容:

    doctype html
    html 
      head
        title jade-include测试
        meta(charset='utf-8')

    body中的内容:

    include ./header.jade
      body
        h1 This is body
    理论上讲此时body和head同级,会出现理想中的排版顺序,就像上面的正常顺序一样,但是最后生成的HTML如下:

    <!DOCTYPE html>
    <html> 
      <head>
        <title>jade-include测试
          <body>
            <h1>This is body</h1>
          </body>
        </title>
        <meta charset="utf-8">
      </head>
    </html>
    很明显不对,不是自己想要的,所以此方法不能取,但是为什么我也不知道,另外还有一种就是按照上面的错误来看是把body写成head的子元素了,那我们吧body中的标签向前取消两个空格缩进,看一下效果

    <!DOCTYPE html>
    <html> 
      <head>
        <title>jade-include测试</title>
        <meta charset="utf-8">
      </head>
    </html>
    <body>
      <h1>This is body</h1>
    </body>
    此时body又编程和html同级别的元素,所以此方法也不能用


    entends:

    我们使用entends和block语法试试

    hearder中内容如下:

    doctype html
    html
      head
        title 主页
        meta(charset='utf-8')
      block body
    body中的内容:

    extends header.jade
    block body
      body
        h1 This is login

    注意看语法的使用方法其中的缩进,header中block放在和head同一级别中,因为在body中的第一个标签是body,是要和head同级的

    在body中block放在顶格位置,因为此位置是要把整个header中的元素拿过来放在这,之后就是html第一级,head和body同为第二级

    extends 相当于是导入此header文件到body中

    最后生成的HTML内容如下:


    <!DOCTYPE html>
    <html>
      <head>
        <title>主页</title>
        <meta charset="utf-8">
      </head>
      <body>
        <h1>This is login</h1>
      </body>
    </html>






    展开全文
  • Struts2 in action中文版

    2015-09-23 11:30:12
    3.4 对象传递数据 51 3.4.1 对象支持的JavaBean属性 52 3.4.2 ModelDriven动作 54 3.4.3 域对象用作数据转移的潜在危险 55 3.5 案例研究:文件上传 56 3.5.1 通过struts-default包获得内建的支持 56 3.5.2 ...
  • 3.4 对象传递数据 51 3.4.1 对象支持的JavaBean属性 52 3.4.2 ModelDriven动作 54 3.4.3 域对象用作数据转移的潜在危险 55 3.5 案例研究:文件上传 56 3.5.1 通过struts-default包获得内建的支持 56 3.5.2 ...
  • rtp_imgquery是TYPO3扩展,它TypoScript IMAGE对象,默认图像内容元素(“文本和图像”,“仅图像”)以及标准的和Fluid图像视图助手添加了响应式和流畅的图像技术。 它旨在: 提供简单而强大的自定义。 结合...
  • 但是在调试时就出现了很奇怪的问题:但我点击子标签的文本框时键盘弹出来但是获取不了焦点,要再点一次文本框才能输入内容,而输入完后键盘一收起来刚输入的文本就没了,请问这个该怎么解决? ``` private class ...
  • 1 理解计算机是怎么运行程序的 2 运行一个已解释的程序 3 运行一个已编译的程序 4 C++在哪里 5 理解Visual c++中的程序文件 6 创建源代码文件 7 理解并创建头文件 第二章 结构和语法 8 理解计算机语言 9 理解计算机...
  • 1 理解计算机是怎么运行程序的 2 运行一个已解释的程序 3 运行一个已编译的程序 4 C++在哪里 5 理解Visual c++中的程序文件 6 创建源代码文件 7 理解并创建头文件 第二章 结构和语法 8 理解计算机语言 9 理解计算机...
  • 1 理解计算机是怎么运行程序的 2 运行一个已解释的程序 3 运行一个已编译的程序 4 C++在哪里 5 理解Visual c++中的程序文件 6 创建源代码文件 7 理解并创建头文件 第二章 结构和语法 8 理解计算机语言 9 理解计算机...
  • 1 理解计算机是怎么运行程序的 2 运行一个已解释的程序 3 运行一个已编译的程序 4 C++在哪里 5 理解Visual c++中的程序文件 6 创建源代码文件 7 理解并创建头文件 第二章 结构和语法 8 理解计算机语言 9 理解计算机...
  • 5.8 Oracle数据字典和动态性能视图 158 5.8.1 Oracle数据字典 159 5.8.2 动态性能(V$)视图 159 5.8.3 三组数据字典视图 159 5.8.4 如何创建数据字典 160 5.9 使用静态数据字典视图 160 5.10 与...
  • vfp6.0系统免费下载

    2009-09-17 13:49:13
    答案: 支持 Visual FoxPro 内部的列表框控件添加复选框是一种较为普遍的要求。在新版的 Microsoft ActiveX ListView 控件及 Treeview 控件中已可以支持复选框。这些控件都包含在 Visual FoxPro 6.0 中(请参阅问题...
  • 视图/虚表 view 41 索引 42 存储过程 procedure 42 事务 transaction 43 触发器 trigger 46 练习 46 一、单表查询练习 46 二、聚合函数练习 47 三、分组查询练习 47 四、嵌套查询练习 48 五、联接查询练习 48 六、...
  • Visual Studio程序员箴言中文扫描PDF

    热门讨论 2010-12-28 01:04:18
    技巧5.20 在工具箱的图标视图和列表视图之间切换 114 技巧5.21 使用“全部显示”找到已隐藏的工具箱控件 114 技巧5.22 使用ctrl+c键复制工具箱选项卡中的控件,然后用ctrl+v键将该控件粘贴到另一个工具箱选项卡...
  • 制表位是指水平标尺上的位置,它指定了文字缩进的距离或一栏文字开始的位置,使用户能够左、右或居中对齐文本行;或者将文本与小数字符或竖线字符对齐。用户可以在制表符前自动插入特定字符,如句号或划线等。...
  • Oracle总结【视图、索引、事务、用户权限、批量操作】 Oracle总结【PLSQL学习】 Mysql免安装配置教程(图文版) Oracle11安装和卸载教程 SqlServer安装和连接JDBC资料 :tshirt:JDBC JDBC总结 JDBC【介绍JDBC、使用...
  • VC++常用功能实例

    2010-01-25 23:28:46
    ◆在调试中怎么样MESSAGEBOX一个数字◆ 16 ◆如何控制控件的焦点◆ 16 ◆如何对析构函数中对象进行释放◆ 16 ◆如何关闭一个模态窗口◆ 17 ◆如何将一个提示的声音发到声卡上◆ 17 ◆如何得到打开exe的带的参数◆ 17...
  • ◆在调试中怎么样MESSAGEBOX一个数字◆ 16 ◆如何控制控件的焦点◆ 16 ◆如何对析构函数中对象进行释放◆ 16 ◆如何关闭一个模态窗口◆ 17 ◆如何将一个提示的声音发到声卡上◆ 17 ◆如何得到打开exe的带的参数◆ 17...

空空如也

空空如也

1 2 3
收藏数 56
精华内容 22
关键字:

向视图怎么标