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
传递给方法的原因。