我有一个 aspx 页面,它具有以下 js 函数,该函数在单击按钮时调用
<input type="button" onclick="calltemp1()" value="Temp1"/>
<script type="text/javascript">
function calltemp1() {
$("#Renderthisdiv").load("/Views/Templates/_Temp1.ascx");
}
</script>
我的 _Temp1.ascx 页面呈现另一个页面 Temp1.ascx 我的 _Temp1.ascx 包含
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<div>
<%Html.RenderPartial("/Views/Templates/Temp1.ascx"); %>
</div>
当我运行程序时,我收到 JavaScript 运行时错误,提示 “object expected” 请帮我解决这个问题
最佳答案
您的 JavaScript 调用将通过 MVC 管道进行另一次旅行。所以它会命中路由、 Controller ,然后是 View 。您的 JavaScript 不应尝试直接访问 ascx 文件,而应尝试访问映射到呈现 View 的 Controller 的路由。
您的 JS 应如下所示(注意这是使用根相对 URL,您可能需要进行调整):
$("#Renderthisdiv").load("/template/temp1");
或者,您可以使用 HTML 帮助程序来获取 URL,但 JS 必须在您的 View 中:
$("#Renderthisdiv").load("<%= Html.Action("temp1", "template") %>");
该 URL 将命中 TemplateController 上的 Temp1 操作
public class TemplateController : Controller {
public ViewResult Temp1() {
return View("Temp1");
}
}
关于asp.net - 使用 javascript、jquery 将 .ascx 页面呈现为 .aspx 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1817981/