在我的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">
请帮助我解决问题
答案 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