首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Microsoft Razor语法如何运行服务器端代码而不将其公开给客户端?

Microsoft Razor语法如何运行服务器端代码而不将其公开给客户端?
EN

Stack Overflow用户
提问于 2015-08-18 17:10:17
回答 4查看 5.9K关注 0票数 2

我很难理解Razor语法是如何工作的。

我的理解是,它将允许您将服务器端代码直接嵌入到页面中,但这会使所有这些都不受客户端的影响,即使客户机可以与其交互。

我已经习惯了ASP.net的web视图和类似的东西- Razor语法本质上是做回发,所有的代码都包含在页面中,还是客户端与服务器端代码的交互方式根本不同?

如果这是太开放的,请留下我的意见,如何更集中的问题。恐怕我还没有足够的理解来提出重点明确的问题。

谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-08-18 17:27:12

据我理解:

1. Razor语法如何工作:

您可以看到Razor与Web表单中的抄写器相似。例如,您想要获得Human类的Human,在.cshtml文件中,您可以编写:

代码语言:javascript
运行
复制
<div>Name is @Model.Name</div>

aspx中,您可以这样写:

代码语言:javascript
运行
复制
<div>Name is <%= Human.Name %></div>

在将HTML文件返回给客户端之前,Razor和scriplet都将被处理。按照上面的示例,如果您查看HTML网页的源代码,您将看到(Forte只是一个示例):

代码语言:javascript
运行
复制
<div>Name is Forte</div>

因为代码是经过处理的,所以客户机所看到的只是HTML结果。

2.客户端如何与服务器交互?

在Web中,当您想要转到服务器(比如句柄click按钮事件)时,您可以生成通过为按钮设置OnClickListener来调用的函数,并且所有事情都是自动为您完成的。

但是,在MVC.NET中,您必须通过Ajax调用来完成,或者将按钮放在<form>中。

如果你有什么问题,请告诉我:)

票数 3
EN

Stack Overflow用户

发布于 2015-08-18 17:16:48

mvc运行所有这些内容服务器端,并为客户端提供最终的html/javascript生成。

票数 3
EN

Stack Overflow用户

发布于 2015-08-18 17:25:24

如果你把这个放在视图里的话

代码语言:javascript
运行
复制
@{ var var1 =   "Hello World"; }
<p>The value of var1 is: @var1</p> 

所有事情都发生在服务器上

当用户请求此页面时,服务器获取上面的文本并将其发送到视图引擎。

然后服务器逐行运行文本并“编译”它。

然后服务器将结果返回给用户:

代码语言:javascript
运行
复制
The value of var1 is: Hello World

如果用户创建了一个视图源,他只会看到:

代码语言:javascript
运行
复制
<p>The value of myMessage is: Hello World</p>

因此,客户端上的用户编写了一个简单的URL,他得到的结果只是上面的一行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32078645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档