获取 ASP.Net MVC 中的当前 ViewContext
我有一个 ASP.Net MVC JsonResult 函数,我想在其中返回 PartialView 的内容(该内容必须使用 Ajax 加载,并且由于某种原因我无法返回 PartialViewResult)。
为了渲染 PartialView 我需要 ViewContext 对象。
如何在 Action 方法中获取当前 ViewContext 对象?我什至在我的操作方法中没有看到 HttpContext.Current。
我正在使用 ASP.net MVC 1。
I have a ASP.Net MVC JsonResult function in which I want to return the contents of a PartialView (The content has to be loaded using Ajax, and for some reason I can't return a PartialViewResult).
To render the PartialView I need the ViewContext object.
How do you get the current ViewContext object within an Action method? I don't even see HttpContext.Current in my action method.
I am using ASP.net MVC 1.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我可能在某个地方错过了一点,但我返回部分视图的操作是通过返回引用 ascx 页面的 View 对象来实现的。这将返回部分 HTML,而不包含完整的页面结构(html、head、body 等)。不确定为什么您想要做除此之外的任何事情,您需要返回 PartialViewResult 是否有特定原因?这是我的工作代码中的一个示例。
首先是我的控制器中的操作:
然后是部分视图 (ascx):
最后是设置调用的 Jquery:
所以,一个完整的 AJAX 过程,希望有所帮助。
---- 更新以下评论 ----
返回 Json 数据也同样简单:
首先,当选择框更改时启动 AJAX 调用:
处理返回的 json 数据的 javascript:
最后是返回 json 数据的 Action 本身:
有帮助吗?如果没有,那么您可以发布一些您正在处理的代码,因为我遗漏了一些东西。
I may have missed a point somewhere but my Actions that returned partial views do so by returning a View object that refers to an ascx page. This will return partial HTML without the full page constructs (html, head, body, etc.). Not sure why you'd want to do anything beyond that, is there a specific reason you need to return PartialViewResult? Here's an example from my working code.
First the Action in my controller:
And then the partial view (ascx):
Lastly, the Jquery that sets up the call:
So, a full AJAX process, hope that helps.
---- UPDATE following comment ----
Returning Json data is just as easy:
Firstly, initiating the AJAX call when a select box changes:
The javascript that processes the returned json data:
And finally the Action itself that returns the json data:
Does that help? If not then can you post some of the code you are working on as I'm missing something.
ViewContext 在操作方法中不可用,因为它是在渲染视图之前构建的。我建议您使用 MVCContrib 的 BlockRenderer 将部分视图的内容呈现为字符串。
a ViewContext is not available within the action method because it is constructed later before rendering the view. I would suggest you using MVCContrib's BlockRenderer to render the contents of a partial view into a string.