从Javascript渲染局部视图并传递模型

时间:2018-04-20 15:45:18

标签: javascript asp.net-mvc

我需要动态创建部分视图,这需要最初使用的模型。我可以序列化模型并将其传递给javascript函数,但我无法弄清楚如何使用jquery api load传递。

这是我目前正在做的事情。

@Html.RenderPartial("~/Views/Shared/_PartialView.cshtml", Model);

我在cshtml页面中调用了这样的部分。这很好用。

load('@Url.Action("_PartialViewAction", "Home")')

此外,像这样调用load也可以。

                    <!-- nav -->
                 <nav class="navbar navbar-expand-lg navbar-dark navbar-site sticky-top0 nav-fill0 navbar-lg0 navbar-transparent0" role="navigation">
    <div class="container">
        <button class="navbar-toggler site-toggler collapsed" type="button" data-toggle="collapse" data-target="#siteMenu" aria-controls="siteMenu" aria-expanded="false" aria-label="Toggle navigation">Menu</button>

        <div class="collapse navbar-collapse" id="siteMenu">
            <ul class="navbar-nav mr-auto">
                <li class="nav-item home-icon">
                    <a class="nav-link" href="index.html">Home</a>
                </li>
                <li class="nav-item ">
                    <a class="nav-link" href="whymac.html">Why McMaster?</a>
                </li>
                <li class="nav-item ">
                    <a class="nav-link" href="co-op.html">Co-Op/Internships</a>
                </li>
                <li class="nav-item ">
                    <a class="nav-link" href="summergrad.html">Summer & Recent Grads</a>
                </li>
                <li class="nav-item ">
                    <a class="nav-link" href="funding.html">Funding</a>
                </li>

                <li class="nav-item dropdown">
                    <a class="nav-link dropdown-toggle" href="https://mps.mcmaster.ca/_staging/bw/elements/#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Recruitment
</a>    <div class="dropdown-menu" aria-labelledby="navbarDropdown">
                        <a class="dropdown-item" href="careerfairs.html">Career Fairs</a>
                        <a class="dropdown-item active" href="infosessions.html">Information Sessions</a>

                    </div>
                </li>
                <li class="nav-item ">
                    <a class="nav-link" href="postnow.html">Post Now</a>
                </li>
                <li class="nav-item ">
                    <a class="nav-link" href="contact.html">Contact</a>
                </li>
            </ul>
        </div>
    </div>
</nav>
                    <?php html5blank_nav(); ?>

                <!-- /nav --> 

问题是,我需要通过javascript / jquery调用传递模型。

更新

所以这是我的错。它必须是星期五早上的事情 - 实际上这很容易实现。我只需要将序列化数据传递给控制器​​,然后加载局部视图。

1 个答案:

答案 0 :(得分:0)

您可以将对象保存为javascript var:

<script>
  var viewModel = @Html.Raw(JsonNetConverter.Serialize(Model))
 </script>

或者像这样:

var viewModel = { VariationID: @Model.id, ProductID: @Model.product, InStock: @Model.isStock, Price: @Model.price };

并且leter接受它:

load('@Url.Action("_PartialViewAction", "Home")', viewModel)