2009-11-30 83 views
1

我有點擊它具有以下被稱爲按鈕js函數aspx頁面使用渲染的.ascx頁面到.aspx頁面中的javascript,jquery的


<input type="button" onclick="calltemp1()" value="Temp1"/> 

<script type="text/javascript"> 
     function calltemp1() { 

      $("#Renderthisdiv").load("/Views/Templates/_Temp1.ascx"); 
     }    
    </script> 

我_Temp1.ascx頁面呈現另一個頁面Temp1.ascx my _Temp1.ascx包含

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> 

<div> 
<%Html.RenderPartial("/Views/Templates/Temp1.ascx"); %> 
</div> 

當我運行程序我得到的JavaScript運行錯誤說「預期目標」 請幫我解決這個問題

回答

0

只需添加相應的操作控制器,所以你可以使用jQuery呈現它:

public class TemplateController : Controller { 
    public ViewResult Temp1() { 
     return View("_Temp1") 
    } 
} 
2

您的JavaScript調用將通過MVC管道進行另一次旅程。所以它會碰到路由,控制器,然後是一個視圖。您的JavaScript不應直接嘗試直接訪問ascx文件,而是映射到呈現視圖的控制器的路徑。

你的JS應該是這樣的(注意,這是使用根相對URL,你可能需要調整):

$("#Renderthisdiv").load("/template/temp1"); 

或者,您也可以使用HTML幫助來獲取URL,但JS將要在您的視圖:

$("#Renderthisdiv").load("<%= Html.Action("temp1", "template") %>"); 

該網址會擊中TemplateController

public class TemplateController : Controller { 
    public ViewResult Temp1() { 
      return View("Temp1"); 
    } 
} 
的TEMP1行動