在主视图中显示局部视图

时间:2014-05-07 13:45:48

标签: asp.net-mvc-4 partial-views asp.net-mvc-partialview

我需要知道如何在主视图中的特定区域显示局部视图,这是我的源代码 主视图:cshtml

<table  align="left" border="5px" cellspacing="2px" style="border:2px solid black">
<tr>       
    <table>
        <tr>
            <td style="border:2px solid black">
                <div style="background-color: #fff; border: 6px solid #ccc; height: 700px; width: 500px; margin: 20px; padding: 20px;" align="center">Select Baseline Image
                    <input type="button" value="Upload" align="right">
                    <div style="background-color: #fff; border: 6px solid #ccc; height: 500px; width: 300px; margin: 20px; padding: 20px;" align="center">@Html.Partial("_DisplayImage")</div>
                    </div>
                <form method="POST">
                    <input id="leftUrlTB" name="URL" type="Text" style="background-color: #fff; border: 6px solid #ccc"/>
                    <input id="leftBrowser" name="leftBrowser" value="Firefox" type="radio" />Firefox<br>
                    <input id="leftBrowser" name="leftBrowser" value="Chrome" type="radio" />Chrome<br>
                    <input id="leftBrowser" name="leftBrowser" value="Internet Explorer" type="radio" />Internet Explorer<br>
                    <input type="submit" value="Capture" align="right">
                </form>
            </td>                

            <td style="border:2px solid black">
                <div style="background-color: #fff; border: 6px solid #ccc; height: 700px; width: 500px; margin: 20px; padding: 20px;" align="center">Select Comparison Image
                    <input type="button" value="Upload" align="right">
                    <div style="background-color: #fff; border: 6px solid #ccc; height: 500px; width: 300px; margin: 20px; padding: 20px;" align="center"></div></div>

                <form method="POST">
                    <input id="rightUrlTB" name="URL" type="Text" style="background-color: #fff; border: 6px solid #ccc"/>
                    <input id="rightBrowser" name="leftBrowser" value="Firefox" type="radio" />Firefox<br>
                    <input id="rightBrowser" name="leftBrowser" value="Chrome" type="radio" />Chrome<br>
                    <input id="rightBrowser" name="leftBrowser" value="Internet Explorer" type="radio" />Internet Explorer<br>
                    <input type="submit" value="Capture" align="right">
                </form>

            </td>
        </tr>    

    </table>

</tr>

<tr>
    <td  >
        <div style="background-color: #fff; border: 6px solid #ccc; height: 700px; width: 1100px; margin: 20px; padding: 20px;" align="center"></div>
    </td>     

部分视图代码是这一个:

<img src="@Url.Action("WebAppView")" />

我得到了那些控制器:

public ActionResult WebAppView()
    {
        return View();
    }

  [HttpPost]
    public ActionResult WebAppView(string url, string selectedBrowserRadio)
    {
      selectedBrowserRadio = Request.Form["leftBrowser"];
      selectedBrowserRadio = selectedBrowserRadio.Replace(" ", string.Empty);
      var selectedBrowser = (Browser)Enum.Parse(typeof(Browser), selectedBrowserRadio, true);
      var bmp= ScreenShotter.TakeScreenShot(selectedBrowser, url);
      var converter = new ImageConverter();
      var bmpArray = (byte[])converter.ConvertTo(bmp, typeof(byte[]));
      return File(bmpArray,"image/png");
    }


  public ViewResult _DisplayImage()
  {
      return View("_DisplayImage");
  }

我的问题是返回的图像显示在整个视图中,而不是在我指定的div区域中。我需要在左侧div区域渲染它 谢谢

2 个答案:

答案 0 :(得分:0)

尝试更改

  public ActionResult WebAppView()
  {
     return View();
  }

public ActionResult WebAppView()
    {
        return PartialView();
    }

答案 1 :(得分:0)

@ Html.Partial(&#34; _DisplayImage&#34;)应直接调用局部视图,而不是通过控制器。

你的意思是使用@ Html.RenderAction()来调用Action方法吗?如果是这样,你的action方法返回一个视图(&#34; _DisplayImage&#34;)结果,而不是它应该是的PartialView(&#34; _DisplayImage&#34;)。