pass a different model to the partial view

后端 未结 3 1572
忘掉有多难
忘掉有多难 2021-01-01 15:24

I am trying to pass a different model to the partial view from a view. I have two separate controller actions for both of them and two different view models. But when I call

相关标签:
3条回答
  • 2021-01-01 15:42

    One thing you will need to do is regenerate a model or utilize a property in the model. For example:

     public class OuterViewModel
     {
         public InnerViewModel InnerViewModel { get; set; }
     }
    
     public class InnerViewModel
     {
         public string SomeProperty { get; set; }
     }
    

    In the top page, you can accept the OuterViewModel, then pass the InnerViewModel to the Partial.

    Outer.cshtml:

     @model OuterViewModel
     @Html.Partial("_InnerPartial", Model.InnerViewModel)
    

    _InnerPartial.cshtml:

     @model InnerViewModel
     @using (Html.BeginForm("Inner", "Controller"))
     {
          <div>
              @Html.AntiForgeryToken()
              @Html.TextBoxFor(m => m.SomeProperty)
              <input type="submit" value="Save" />
          </div>
     }
    
    0 讨论(0)
  • 2021-01-01 15:50

    This is quite simple to do. There is a html directive which can render a partial view. Following is the code sample:

     @Html.Partial("nameOfPartial", Model)
    

    Now here Model could be from your main controller.

    or you can define a new controller action with partialviewresult as return type and try to render it in the page like this:

    @{Html.RenderAction("Someaction", "somecontroller");}
    
    0 讨论(0)
  • 2021-01-01 15:54

    you are using the right method but not passing in the right arguments

    you might want to try it like this:

    @Html.Partial("~/[path_to_root_only_if_exists]/_CreateUniFunctionPartial.cshtml", new Application.ViewModels.PartialViewModel())
    

    if you do not pass in a model, it will automatically take the one from its parent, which in your case is

    Application.ViewModels.Model1ViewModel
    
    0 讨论(0)
提交回复
热议问题