【发布时间】:2014-02-18 14:36:47
【问题描述】:
如何在 JavaScript 或 jQuery 页面加载中使用 @RenderPage?我已经尝试过了,但它不起作用:
$("#ActivePageContent").load('@RenderPage("/Views/Port.cshtml")');
【问题讨论】:
标签: javascript asp.net asp.net-mvc razor
如何在 JavaScript 或 jQuery 页面加载中使用 @RenderPage?我已经尝试过了,但它不起作用:
$("#ActivePageContent").load('@RenderPage("/Views/Port.cshtml")');
【问题讨论】:
标签: javascript asp.net asp.net-mvc razor
您将服务器端代码与客户端代码混淆了。 @RenderPage 只是将视图的渲染 HTML 直接转储到 Response。您可以检查页面的来源以进行验证。你会得到一些看起来很像......
$("#ActivePageContent").load('<html><head><title>Some Page</title>...');
目前尚不清楚您真正想用 jQuery load() 方法做什么,但 @RenderPage 不会让您到达那里。
来自jQuery,load() 应该获取一个 URL:
$( "#result" ).load( "ajax/test.html" );
也许你打算写这样的东西?
$("#ActivePageContent").load('@Url.Action("Port", "MyController")');
【讨论】:
load() 使用的是 URL。它具有误导性,因为 URL 中包含 PartialView,但它仍然是一个 URL。尝试使用 UrlHelper 方法 Url.Action() 代替,这将生成控制器上操作方法的 URL。