使用renderpartial将参数传递给.aspx页面

时间:2009-12-07 05:03:51

标签: asp.net asp.net-mvc renderpartial

在我的index.aspx页面中,我想使用renderpartial渲染另一个module.aspx页面  然后呈现.htm文件 depanding从index.aspx传递哪个参数(它将是数字,即1,2等,以便每次调用不同的.htm文件,具体取决于参数)

1)。 现在我想要Index.aspx页面来渲染module.aspx并传递一个参数(1,2,3等) [参数将以编程方式传递(硬编码)] 和 2)。 mudule.aspx应该捕获参数,并根据它将调用.htm文件

我的index.aspx有

  <% ViewData["TemplateId"] = 1; %>
  <% Html.RenderPartial("/Views/Templates/MyModule.aspx", ViewData["TemplateId"]); %>

和module.aspx包含

 <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>
<script type="text/javascript" src="/Scripts/jquery-1.3.2.js"></script>
<script type="text/javascript" src="/Scripts/Service.js"></script> 

<script type="text/javascript">


        debugger;
        var tid = '<%=ViewData["TemplateId"] %>';

        $.get("/Templates/Select/" + tid, function(result) {
            $("#datashow").html(result);
        });



</script>

<div id="datashow"></div> 

这是我的控制器,由$ .get(....)调用(见代码)

public ActionResult Select(int id)
    {
        return File("/Views/Templates/HTML_Temp" +id.ToString()+".htm" , "text/html");

    }

最后 我的.htm文件

<div  id="divdata" class="sys-template">
<p>Event Title:<input  id="title"  size="150" type="text" 
        style="background-color:yellow;font-size:25px;width: 637px;"  
        readonly="readonly" value="{{title}}" />
    </p>   


<p>Event Description:<input type="text" id="description" value="{{ description }}"  
    readonly="readonly" style="width: 312px" /></p>

<p>Event Date: <input type="text" id="date" value="{{ date }}" readonly="readonly" 
        style="width: 251px"/></p>
<p>Keywords : <input type="text" id="keywords" value="{{keywords}}" readonly="readonly" /></p>
   </div>

<script type="text/javascript">
    Sys.Application.add_init(appInit);
    function appInit() {
        start();
    }
</script>

start()是javascript方法,它位于文件Service.js

当我运行这个程序时,它给了我错误 js运行时错误:'对象预期'

上突出显示和调试器
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/**xhtml**1-strict.dtd">

请帮助我解决问题

2 个答案:

答案 0 :(得分:1)

使用RenderPartial时,默认情况下会传递Index.aspx的模型。您的部分视图可以是相同类型。然后,您可以使用Model.MyParameter找出应该呈现的htm文件。否则,您可以在RenderPartial的object参数中传递它,并在局部视图内查询该对象。

答案 1 :(得分:1)

像这样使用<% Html.RenderPartial("/Views/Templates/MyModule.ascx", Model); %&gt;使用Model将值传递给局部视图MyModule.ascx。您还可以使用方法Html.RenderAction