C# 如何在保持主视图不变的情况下,使用验证消息呈现局部视图表单

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

目前我有一个包含KendoGrid的主视图。根据用户单击的按钮,我们可以查看上下文,并根据单击的行显示部分视图。该行可以是电话、地址或电子类型。我通过一个AJAX调用加载部分视图,就像在这个回答中提到的那样

以下是加载表单的javascript:

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"/>
}