Render Partial View from other controller

后端 未结 5 1641
灰色年华
灰色年华 2020-12-13 05:52

Is there a way to render inside my view of controller A a partial view from other controller B?

Edit: I wrote a partial view that

相关标签:
5条回答
  • 2020-12-13 06:02
    @Html.Partial("~/Views/ControllerB/Index.cshtml")
    
    0 讨论(0)
  • 2020-12-13 06:07
    1. You can share views between controllers by putting them into the Views/Shared folder. Each controller can then render that view by name.
    2. You can render a partial view (which can be shared between controllers as in (1)) within the current view using Html.Partial().
    3. You can use Html.Action() to invoke an action on a different controller and render the results within the current view.
    4. You can use AJAX to load a partial view from a different controller after the page has been rendered.
    0 讨论(0)
  • 2020-12-13 06:10

    Just a side note as i found this thread searching for the same question but the answers weren't working: in Orchard CMS modules you cannot use the neat solution posted by Pittfall, you have to use relative paths to return partial views. Lets say you have a controller

    Controllers/SiteController.cs
    

    and you want to return the partial view

    Shared/MessageList/Items
    

    then in your action methods you need to write

    return PartialView("../Shared/MessageList/Items");
    
    0 讨论(0)
  • 2020-12-13 06:13

    Yes,

    return PartialView("/path/view.cshtml");
    

    You just need to work out the path part.

    Alternatively you can put the partial view in views/shared then just return :

    return PartialView("view.cshtml");
    
    0 讨论(0)
  • 2020-12-13 06:27
    @model YourModelNamesapce.ModelName
    @{
        ViewBag.Title = "Edit";
        Layout = "~/Views/Shared/_LayoutForPartialViews.cshtml";
    }
    <table>
        <tr>
           <td>
              @Html.LabelFor(model => model.fieldname)
           </td>
           <td>
              @Html.DisplayFor(model => model.fieldname)
           </td>
        </tr>
        <tr>
           <td>@Html.Action("PartialViewAction", "Controller", new { id = Model.id })</td>
        </tr>
    </table>
    
    0 讨论(0)
提交回复
热议问题