计算包含html和razor的字符串
因此,基本上我有一个html代码,它也可以包含一些razor代码,例如计算包含html和razor的字符串,html,asp.net-mvc,razor,Html,Asp.net Mvc,Razor,因此,基本上我有一个html代码,它也可以包含一些razor代码,例如@Url.Action(“Index”,“Home”),当然我不想将'@Url.Action(“Index”,“Home”)呈现给用户,我希望在呈现之前对其进行评估。这能做到吗 @Html.Raw(htmlValue) and htmlValue is razor html string 如果这是您想要的,那么您不能在视图中评估此代码。问题是,此时您不再处于服务器的上下文中(这是需要执行此代码的地方) 您需要首先在服务器上评
@Url.Action(“Index”,“Home”)
,当然我不想将'@Url.Action(“Index”,“Home”)呈现给用户,我希望在呈现之前对其进行评估。这能做到吗
@Html.Raw(htmlValue) and htmlValue is razor html string
如果这是您想要的,那么您不能在视图中评估此代码。问题是,此时您不再处于服务器的上下文中(这是需要执行此代码的地方) 您需要首先在服务器上评估此代码,然后将其传递到视图中(这有点违背MVC的目的),然后可以使用它输出预呈现的内容。
Url.Action(“Index”,“Home”)
是一个返回字符串(Url)的服务器端函数
您有一个cshtml文件,该文件在“razor渲染过程”结束时返回html。在页面转换为html之前,使用razor引擎呈现所有“服务器”内容。
这意味着这一行:
Url.Action(“Index”,“Home”)
当它以纯html的形式出现在您的客户机上时,实际上是这样的:
<yourserver>/Index/Home
/Index/Home
您不能将javascript属性插入Url.Action函数,因为该函数是在页面转换为html之前在服务器端计算的。您可以做的是,使用javascript变量对服务器执行ajax调用,它可以使用url.Action返回url。您的问题引起了它的兴趣,它开始寻找解决方案 通过查看非ASP.NET项目的cshtml文件,我发现这似乎可以完成一些工作 这并不是很有趣,但当您在运行时将其与程序集的自定义生成/编译相结合时,您可能会有所收获 我认为这只有在视图没有根据每个请求进行更改时才可行,这意味着您需要继续生成程序集。或者你必须想出一些聪明的办法