模型值未显示在部分更新视图中
model values are not showing in partial update view
在我的网络应用程序中,我有一个网格列表。我 select 一行,然后单击编辑按钮以在弹出窗口 window 中显示部分更新视图(我也用它来添加新数据)。视图显示,但文本框中没有任何值。我使用 devextreme 组件,但我认为,我的问题与它无关(也许我错了)。
这是 onClick 代码:
function editrow_onClick() {
var key = $("#grid").dxDataGrid("instance").getKeyByRowIndex(selectedRowIndex);
$.ajax({
url: '/MasterData/Sender/UpdateSender/'+key,
}).done(function (response) {
var popup = $("#sender-popup").dxPopup("instance");
popup.option("contentTemplate", function (content) {
content.append(response);
});
popup.show();
});
}
如果我点击编辑按钮,我会得到正确的 url 就像 /MasterData/Sender/UpdateSender/3。
相应的控制器动作如下所示:
[Route("{id}")]
public IActionResult UpdateSender(long SenderId)
{
return PartialView("NewSender", SenderRepository.GetSender(SenderId));
}
在控制器之上 class 我有相应的属性:[Route("MasterData/[controller]/[action]")]
我测试了 id,动作达到了,但是 SenderId
是 0。我希望 f.e。 3. 我认为这应该是导致空视图的原因。为什么 SenderId
0(默认值)?
我也post更新视图,也许这是问题的根源(不要打扰AddSender
动作,我打算有条件地改变它,如果我得到更新数据工作):
@model Sender
<form asp-action="AddSender" asp-controller="Sender" method="post">
@using(Html.DevExtreme().ValidationGroup()) {
@(Html.DevExtreme().Form<Sender>()
.ID("form")
.ColCount(1)
.Items(items => {
items.AddSimpleFor(m => Model.Name);
items.AddSimpleFor(m => Model.Address);
items.AddSimpleFor(m => Model.ContactPerson);
items.AddSimpleFor(m => Model.ContactEmail);
items.AddGroup().Items(groupItem => groupItem.AddSimple().Template(
@<text>
<div style="text-align: right">
@(Html.DevExtreme().Button().ID("save").Text("Mentés").Width(100).Type(ButtonType.Success).UseSubmitBehavior(true))
@(Html.DevExtreme().Button().ID("cancel").Text("Mégsem").Width(100).Type(ButtonType.Normal).OnClick("close_onClick"))
</div>
</text>));
})
.LabelLocation(FormLabelLocation.Top)
.FormData(Model)
)
}
</form>
<script>
function close_onClick() {
$("#sender-popup").dxPopup("hide");
}
</script>
[Route("{SenderId}")] public IActionResult UpdateSender(long SenderId) { return PartialView("NewSender", SenderRepository.GetSender(SenderId)); }
尝试用 SenderId 替换 id。
然后操作方法将命中所需的值。
在我的网络应用程序中,我有一个网格列表。我 select 一行,然后单击编辑按钮以在弹出窗口 window 中显示部分更新视图(我也用它来添加新数据)。视图显示,但文本框中没有任何值。我使用 devextreme 组件,但我认为,我的问题与它无关(也许我错了)。
这是 onClick 代码:
function editrow_onClick() {
var key = $("#grid").dxDataGrid("instance").getKeyByRowIndex(selectedRowIndex);
$.ajax({
url: '/MasterData/Sender/UpdateSender/'+key,
}).done(function (response) {
var popup = $("#sender-popup").dxPopup("instance");
popup.option("contentTemplate", function (content) {
content.append(response);
});
popup.show();
});
}
如果我点击编辑按钮,我会得到正确的 url 就像 /MasterData/Sender/UpdateSender/3。
相应的控制器动作如下所示:
[Route("{id}")]
public IActionResult UpdateSender(long SenderId)
{
return PartialView("NewSender", SenderRepository.GetSender(SenderId));
}
在控制器之上 class 我有相应的属性:[Route("MasterData/[controller]/[action]")]
我测试了 id,动作达到了,但是 SenderId
是 0。我希望 f.e。 3. 我认为这应该是导致空视图的原因。为什么 SenderId
0(默认值)?
我也post更新视图,也许这是问题的根源(不要打扰AddSender
动作,我打算有条件地改变它,如果我得到更新数据工作):
@model Sender
<form asp-action="AddSender" asp-controller="Sender" method="post">
@using(Html.DevExtreme().ValidationGroup()) {
@(Html.DevExtreme().Form<Sender>()
.ID("form")
.ColCount(1)
.Items(items => {
items.AddSimpleFor(m => Model.Name);
items.AddSimpleFor(m => Model.Address);
items.AddSimpleFor(m => Model.ContactPerson);
items.AddSimpleFor(m => Model.ContactEmail);
items.AddGroup().Items(groupItem => groupItem.AddSimple().Template(
@<text>
<div style="text-align: right">
@(Html.DevExtreme().Button().ID("save").Text("Mentés").Width(100).Type(ButtonType.Success).UseSubmitBehavior(true))
@(Html.DevExtreme().Button().ID("cancel").Text("Mégsem").Width(100).Type(ButtonType.Normal).OnClick("close_onClick"))
</div>
</text>));
})
.LabelLocation(FormLabelLocation.Top)
.FormData(Model)
)
}
</form>
<script>
function close_onClick() {
$("#sender-popup").dxPopup("hide");
}
</script>
[Route("{SenderId}")] public IActionResult UpdateSender(long SenderId) { return PartialView("NewSender", SenderRepository.GetSender(SenderId)); }
尝试用 SenderId 替换 id。 然后操作方法将命中所需的值。