调用cshtml中的控制器函数,其中字符串来自数据库值
本文关键字:字符串 数据库 cshtml 控制器 函数 调用 | 更新日期: 2023-09-27 18:01:27
我试图有一个列在我的数据库中存储的字符串是:
'"Test count:" + @mycontroller.count()'
然后在cshtml文件中输入
<li>@Html.Raw(@MenuItem.ItemText)</li>
然而,所有我得到的显示是在数据库中的字符串,而不是它从控制器计数()函数的实际结果。我如何得到字符串渲染/执行?
你不能从视图调用Controller
中的函数,因为你的视图上没有这样的控制器实例。有两种方法可以做你想做的事情:
-
在你的
Controller
上有一个动作,给定你想要使用的字符串返回你需要的数据,并使一个AJAX调用来获得它 -
在您渲染
View
之前计算您想要的数据并将其传递给您的模型,使用ViewBag
|ViewData
或作为视图模型的一部分
如果正确理解你的意图,你正在尝试将c#代码存储在数据库中,然后在视图中执行它。这是行不通的(默认情况下),因为c#是静态编译语言,这意味着对代码的每次更改都需要首先编译为二进制代码,然后才能执行代码。
同样适用于MVC razor语法视图(cshtml文件)-当cshtml文件第一次被请求时,它被编译成二进制代码,然后执行。
如果你确定你想做什么,然而,也许有一个方法,正如这篇文章所描述的那样。但我首先建议你准确地描述一下你想要达到的目标,为什么你最后会问这个问题。