如何根据“名称”加载第二部分父视图中第一部分的值? [英] How to load 2nd partial based on "Name" value from 1st partial in parent View?
本文介绍了如何根据“名称”加载第二部分父视图中第一部分的值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想根据_partialA中的 Name
值加载_partialB。我的方案中名称
是按钮。
I want to load _partialB based on Name
value from _partialA. The Name
is button in my scenario.
我收到以下错误:
未捕获错误:无法在同一帧中加载XRegExp两次
Uncaught Error: can't load XRegExp twice in the same frame
控制器
public ActionResult ABC(string name="")
{
SDetails sDetails=new SDetails();
var model = new ClsA();
if(name=="")
{
name = sDetails.Rst().FirstOrDefault().Name;
model.firsts = sDetails.Rst();
model.seconds = sDetails.Rs(name);
}
else
{
model.firsts = sDetails.Rst();
model.seconds = sDetails.Rs(name);
}
return View(model);
}
查看
@model Aplication.Models.ABC.ClsA
<div id=myA>
@{ Html.RenderPartial("_PartialA", Model.firsts); }
</div>
<div id=myB>
@{ Html.RenderPartial("_PartialB", Model.seconds);}
</div>
_PartialA
_PartialA
@model IEnumerable<Aplication.Models.ABC.first>
<table>
<tr>
<th>@Html.DisplayNameFor(m => m.Name)</th>
<th>@Html.DisplayNameFor(m => m.Address)</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
<button class="link" type="button" data-
name="@item.name">
@Html.DisplayFor(modelItem => item.Name)
</button>
</td>
<td>
@Html.DisplayFor(modelItem => item.Address)
</td>
</tr>
}
</table>
脚本
$('#myA').on('click', '.link', function () {
debugger;
var name= $(this).data("name");
var url = '@Url.Action("ABC", "ABC")?name=' + name;
$('#myB').load(url);
});
推荐答案
您需要一个单独的方法只返回 _PartialB.cshtml
You need a separate method that returns just your _PartialB.cshtml
public PartialViewResult PartialB(string name)
{
List<first> model = sDetails.Rs(name);
return PartialView("_PartialB", model);
}
并将脚本修改为
$('#myA').on('click', '.link', function () {
var name= $(this).data("name");
var url = '@Url.Action("PartialB")'; // assumes its in the same controller
$('#myB').load(url, { name: name });
});
这篇关于如何根据“名称”加载第二部分父视图中第一部分的值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文