在我的MVC应用中,控制器从外部API获取数据(模型)(因此没有使用模型类),并将其传递给视图。数据(模型)具有一个容器,其中有多个带有多个字段(字符串值)的对象。一个视图遍历每个对象,然后调用另一个视图绘制每个对象。此视图遍历字段(字符串值)并绘制它们。
这对我来说很棘手。有时我想对字段(字符串值)进行一些特殊的格式化。我可以编写20行代码来进行格式化,但随后我将不得不为每个字段执行该操作,这将很愚蠢,而且如此丑陋。相反,我想获取字段(字符串值),将其传递给方法并获取另一个字符串值。然后针对每个领域执行此操作。
所以,这是我的问题:
如何从视图中调用方法?
我意识到我在这里可能会问错问题。答案可能是我不这样做,我应该使用本地模型并将从外部API获得的对象反序列化为本地模型,然后在本地模型中,在通过之前进行“特殊格式化”它到视图。但是我希望有某种方法可以代替我从视图中调用方法。主要是因为将我从API中获得的自定义对象转换成我构建的本地自定义对象似乎很麻烦,该API又包含许多其他自定义对象。而且,我不确定这样做的最佳方法是什么。
免责声明:我知道类似的线程“ ASP.NET MVC:从视图调用控制器方法”(ASP.NET MVC:从视图调用控制器方法),但我看不出如何回答我的问题。
这是您在Controller上调用实例方法的方式:
@{ ((HomeController)this.ViewContext.Controller).Method1(); }
这是您在任何类中调用静态方法的方式
@{ SomeClass.Method(); }
假设该方法是公共的并且对视图可见,那么它将起作用。