我需要动态创建部分视图,这需要最初使用的模型。我可以序列化模型并将其传递给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调用传递模型。
更新
所以这是我的错。它必须是星期五早上的事情 - 实际上这很容易实现。我只需要将序列化数据传递给控制器,然后加载局部视图。
答案 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)