C# 如何在保持主视图不变的情况下,使用验证消息呈现局部视图表单
目前我有一个包含KendoGrid的主视图。根据用户单击的按钮,我们可以查看上下文,并根据单击的行显示部分视图。该行可以是电话、地址或电子类型。我通过一个AJAX调用加载部分视图,就像在这个回答中提到的那样 以下是加载表单的javascript:C# 如何在保持主视图不变的情况下,使用验证消息呈现局部视图表单,c#,ajax,asp.net-mvc,asp.net-mvc-4,partial-views,C#,Ajax,Asp.net Mvc,Asp.net Mvc 4,Partial Views,目前我有一个包含KendoGrid的主视图。根据用户单击的按钮,我们可以查看上下文,并根据单击的行显示部分视图。该行可以是电话、地址或电子类型。我通过一个AJAX调用加载部分视图,就像在这个回答中提到的那样 以下是加载表单的javascript: function LoadEditPage(x) { var grid = $("#contactGrid").data("kendoGrid"); var Id = grid.dataItem(x.parent().p
function LoadEditPage(x) {
var grid = $("#contactGrid").data("kendoGrid");
var Id = grid.dataItem(x.parent().parent()).ContactId;
var Type = grid.dataItem(x.parent().parent()).ContactType;
$.get("ShowEditForm", { Id: Id, Type: Type }, function(data) {
$("#EditForm").html(data);
});
}
以下是处理局部视图请求的操作:
public ActionResult ShowEditForm(int Id, string Type)
{
var clientChannel = new ClientChannel<IContactManger>("clientEndPoint1");
var getContactByPartyIdResponse = clientChannel.Channel.GetContactByPartyID(1);
switch (Type)
{
case "Address" :
var address = getContactByPartyIdResponse.Contact.AddressDto.FirstOrDefault(x => x.ContactId == Id);
return PartialView("_Address", address);
break;
case "Telephone" :
var telephone = getContactByPartyIdResponse.Contact.PhoneDto.FirstOrDefault(x => x.CNTCT_ID == Id);
return PartialView("_Telephone", telephone);
break;
case "Electronic" :
var electronic = getContactByPartyIdResponse.Contact.ElectronicDto.FirstOrDefault(x => x.CNTCT_ID == Id);
return PartialView("_Electronic", electronic);
break;
}
return null;
}
我遇到的问题是,当我们对表单进行编辑并提交表单时,我不知道如何设置表单,以便表单返回适当的验证消息,而不更改当前所在的主页。我只想更新部分视图,同时保持主视图不变
我在很多地方看到过这个问题,但都没有答案。如果有人能解释一下这个问题,或者有其他的策略,我会非常感激。提前谢谢 表单需要使用Ajax。你们可以使用Ajax.BeginForm,然后在帖子中替换自己。希望这能帮助你们:谢谢你们!那有帮助@如果你愿意,你可以把评论作为答案提交给我,这样我就可以接受。你可以用你的代码自我回答。
@model KY.COT.DS.Common.CManager.Services.DataContracts.DTO.Telephone
@using (Html.BeginForm())
{
<div>
@Html.LabelFor(m => m.AREA_CD)
@Html.TextBoxFor(m => m.AREA_CD)
@Html.ValidationMessageFor(m => m.AREA_CD)
</div>
<div>
@Html.LabelFor(m => m.LN_NMBR)
@Html.TextBoxFor(m => m.LN_NMBR)
@Html.ValidationMessageFor(m => m.LN_NMBR)
</div>
<div>
@Html.LabelFor(m => m.EXTNSN)
@Html.TextBoxFor(m => m.EXTNSN)
@Html.ValidationMessageFor(m => m.EXTNSN)
</div>
<input type="submit" value="Submit"/>
}