我正在尝试在我的数据库中有一个列,其中存储的字符串为:
'"Test count:" + @mycontroller.count()'
然后在我的cshtml文件中执行
<li>@Html.Raw(@MenuItem.ItemText)</li>
但是,我显示的只是数据库中的字符串,而不是控制器count()函数的实际结果。如何获取该字符串以进行渲染/执行?
答案 0 :(得分:0)
您无法从视图中调用Controller
中的某个功能,因为您在查看时没有此类控制器的实例。有两种方法可以做你想做的事:
对Controller
执行一个给定您要使用的字符串的操作会返回您需要的数据并进行 AJAX 调用以获取它
在呈现View
之前计算所需的数据,然后使用ViewBag
| ViewData
或作为视图模型的一部分将其传递到模型中
答案 1 :(得分:0)
如果正确理解您的意图,您将尝试将C#代码存储在数据库中,然后在您的视图中执行它。这不会(默认情况下)工作,因为C#是静态编译的语言,这意味着在代码执行之前,需要首先将对代码的每次更改编译为二进制代码。
这同样适用于MVC剃刀语法视图(cshtml文件) - 当首次请求cshtml文件时,它会被编译为二进制代码然后执行。
如果你确定自己想做什么,可能会有一种方法,如SO post所述。但我首先建议你准确描述一下你最终要解决的问题。