从asp.net MVC2中的视图调用控制器中的公共方法
我在控制器中有一个返回字符串的方法 我需要从视图中调用此方法以获取字符串并在视图中显示从asp.net MVC2中的视图调用控制器中的公共方法,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,我在控制器中有一个返回字符串的方法 我需要从视图中调用此方法以获取字符串并在视图中显示 我正在使用MVC2。如何从视图中调用控制器中的公共方法?您真的不应该从视图中调用控制器中的方法,这是MVC模式的倒退。控制器调用视图。可以在调用时将数据从控制器传递到视图,也可以是属于视图可以使用的帮助器类的方法 编辑:如果您不熟悉,请使用帮助程序。您确实不应该从视图中调用控制器中的方法,这与MVC模式相反。控制器调用视图。可以在调用时将数据从控制器传递到视图,也可以是属于视图可以使用的帮助器类的方法 编辑:
我正在使用MVC2。如何从视图中调用控制器中的公共方法?您真的不应该从视图中调用控制器中的方法,这是MVC模式的倒退。控制器调用视图。可以在调用时将数据从控制器传递到视图,也可以是属于视图可以使用的帮助器类的方法
编辑:如果您不熟悉,请使用帮助程序。您确实不应该从视图中调用控制器中的方法,这与MVC模式相反。控制器调用视图。可以在调用时将数据从控制器传递到视图,也可以是属于视图可以使用的帮助器类的方法
编辑:如果您不熟悉,请使用帮助程序。Parrots是正确的,您不应该从视图访问控制器(如他所说使用帮助程序),但如果必须:
<%= ((MyController)this.ViewContext.Controller).SomeMethod() %>
Parrots是正确的,您不应该从视图访问控制器(如他所说,使用助手),但如果必须:
<%= ((MyController)this.ViewContext.Controller).SomeMethod() %>
如果需要调用某个对象(哪个视图不应该调用,但是…),可以为视图提供回调,而不是引用视图中的控制器:
ViewData["callback"] = new Func<string>(() => "string");
// or for strongly typed views
Model.Callback = new Func<string>(() => "string");
ViewData[“callback”]=newfunc(()=>“string”);
//或用于强类型视图
Model.Callback=newfunc(()=>“字符串”);
鉴于
<%= ((Func<string>)ViewData["callback"])() %>
<%= Model.Callback() %>
但是最好不要这样做。如果需要调用某个对象(哪个视图不应该调用,但是…),可以为视图提供回调,而不是引用视图中的控制器:
ViewData["callback"] = new Func<string>(() => "string");
// or for strongly typed views
Model.Callback = new Func<string>(() => "string");
ViewData[“callback”]=newfunc(()=>“string”);
//或用于强类型视图
Model.Callback=newfunc(()=>“字符串”);
鉴于
<%= ((Func<string>)ViewData["callback"])() %>
<%= Model.Callback() %>
但是你最好不要这样做。如果你想在页面中插入一些文本,你可以在控制器上调用一个操作。您可以使用Html.RenderAction(,)。这将在视图中删除该字符串 这是一种从不同控制器填充视图部分的简单方法
或者,是否存在无法从生成视图的操作调用方法并将其放入ViewData/ViewBag的原因?然后,您可以在视图中访问它。如果您想在页面中插入一些文本,可以在控制器上调用操作。您可以使用Html.RenderAction(,)。这将在视图中删除该字符串 这是一种从不同控制器填充视图部分的简单方法
或者,是否存在无法从生成视图的操作调用方法并将其放入ViewData/ViewBag的原因?然后可以在视图中访问它。有时需要从视图中调用控制器的方法,例如,查看DevExpress gridview状态管理机制。为此
(ViewContext.Controller as MyController).SomeMethod();
是一个很好的解决方案。有时需要从视图调用控制器的方法,例如,查看DevExpress gridview状态管理机制。为此
(ViewContext.Controller as MyController).SomeMethod();
这是一个很好的解决方案。。控制器收集数据并将其传递给视图。视图不调用controllers.Upvoted。控制器收集数据并将其传递给视图。视图不调用控制器。正是我需要的正是我需要的