Asp.net mvc 4 在不创建ActionResult的情况下渲染局部视图
这是我的控制器Asp.net mvc 4 在不创建ActionResult的情况下渲染局部视图,asp.net-mvc-4,Asp.net Mvc 4,这是我的控制器 public class HomeController : Controller { public ActionResult Index() { return View(); } public ActionResult ShowPartial() { return PartialView("_View1"); } }
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult ShowPartial()
{
return PartialView("_View1");
}
}
这是我的索引视图
<script type="text/javascript">
function myFunction() {
$("#div1").load('@Url.Action("ShowPartial", "Home")');
}
</script>
<div id="div1">
</div>
@section footerButton {
<input type="button" id="button1" value="button" onclick="myFunction()" />
}
函数myFunction(){
$(“#div1”).load('@Url.Action(“ShowPartial”,“Home”));
}
@节页脚按钮{
}
这是我的布局页面
<body>
<div style="height: 10%; background-color: whitesmoke; text-align: center">
Header
</div>
<div style="height: 80%; background-color: white; text-align: center">
@RenderBody()
</div>
<div style="height: 10%; background-color: whitesmoke; text-align: center">
@RenderSection("footerButton", false)
</div>
</body>
标题
@RenderBody()
@RenderSection(“页脚按钮”,false)
我已经创建了一个局部视图页面,其中我写了一个单词“Hello”。
我在单击按钮时渲染了部分视图。
我使用了一个名为ShowPartial的actionResult,您可以在上面看到它。
现在我的问题是,我希望在不创建Actionresult的情况下获得相同的输出。
请帮助。您是否尝试了Html文件的绝对路径
<script type="text/javascript">
function myFunction() {
$("#div1").load('~/Shared/Something/page.html');
}
</script>
函数myFunction(){
$(“#div1”).load(“~/Shared/Something/page.html”);
}
page.html必须只包含html和javascript代码…如果返回字符串而不是ActionResult,则可以使用以下命令生成字符串。您可以选择将此方法放在基本控制器上,以便最大限度地重用
public string RenderPartialViewToString(string viewName, object model)
{
this.ViewData.Model = model;
try
{
using (StringWriter sw = new StringWriter())
{
ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(this.ControllerContext, viewName);
ViewContext viewContext = new ViewContext(this.ControllerContext, viewResult.View, this.ViewData, this.TempData, sw);
viewResult.View.Render(viewContext, sw);
return sw.GetStringBuilder().ToString();
}
}
catch (System.Exception ex)
{
return ex.ToString();
}
}
然后从方法中调用它,如下所示:
public String ShowPartial()
{
return RenderPartialViewToString("_View1", null);
}
您可以尝试以下方法:
@{ Html.RenderPartial("_PartialViewName"); }
您也可以在视图中使用模型,并直接从调用部分模型的视图传递它。尝试返回字符串而不是ActionResult您的意思是不点击控制器?@MikeDebela,是的,你是对的。你为什么使用模型?我没有在我的模型中放任何东西。模型的使用是可选的,这就是我将
null
传递给方法的原因。