【问题标题】:Is ajax.beginform updatetargetid is required是否需要 ajax.beginform updatetargetid
【发布时间】:2014-03-10 15:50:20
【问题描述】:

我的要求是将部分视图加载为模式弹出窗口。 在我的弹出窗口中有一个文本框和一个验证按钮。 我需要为验证按钮调用 ajax 请求。 并相应地显示状态。 这对我来说很好,但是当我用谷歌搜索它时,大多数网站都显示 updatetargetid 作为 ajax.beginform 中的参数。 我的问题是 需要 ajax.beginform updatetargetid 吗?

这是我的观点。

                    @using (Ajax.BeginForm("VerifyDateOfBirth", new AjaxOptions
                    {
                        HttpMethod = "Post",
                        OnSuccess = "Loaded"
                    }))
                {  
                    <div>
                        <label for="dateOfBirth">
                            Date Of Birth
                        </label>
                        <br />
                        @Html.TextBox("dateOfBirth", null, new { @class = "dob", @readonly = "true" })
                    </div>

                    <button type="submit" id="btnVerify" value="VerifyDateOfBirth" class="">
                        Verify</button>
                    <span id="verifiedStatus" style="color: Blue; display: none;">* Data Match</span>
                    <span id="notverifiedStatus" style="color: Red; display: none;">* Data Not Match</span>
                }

这是我的 Javascript

function Loaded(data) {
    var enteredDateOfBirth = $("#dateOfBirth").val();
    if (data) {
        var json = data.get_response().get_object();
        if (json != null && json.DOB != "") {
            if (enteredDateOfBirth == json.DOB) {
                //alert('result ' + json.DOB);
                $("#verifiedStatus").show();
            }
            else {
                $("#notverifiedStatus").show();
            }
        }
     }
   }

这是我的控制器

[HttpPost]
    public ActionResult VerifyDateOfBirth(string dateOfBirth)
    {
        //TODO : Get data from db
        var data = new PremiumCalculationASView 
        {
            DOB = DateTime.Now.ToString("dd/MM/yyyy") //dateOfBirth
        };
        return Json(data);
    }

这对我来说很好用。 此处需要更新targetid

【问题讨论】:

  • 是仅更新 Ajax.BeginForm 块还是发布整个视图?

标签: jquery asp.net-mvc-3


【解决方案1】:

UpdatetargetId 是可选参数。

UpdatetargetId 是您想要根据服务器响应更新的 DOM 元素的 ID。

如果您使用Ajax.BeginFormcontroller 返回任何ViewPartialView。此 DOM 元素将被更新,并将包含您返回的视图内容。

就你而言,据我所知,你不需要指定UpdateTargetID

【讨论】:

  • 是只更新 Ajax.BeginForm 块还是更新整个视图?
  • 您从服务器返回的视图将被放置在您指定的 DOM 元素中异步的 id
  • 我只是返回杰森而不是视图。我的问题是 {HTML Code} 中的 Ajax 选项块仅刷新或整个视图?
  • 因为你已经返回了 Json,所以不会更新 DOM 元素。您已在 OnSuccess 中指定
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-20
  • 2017-01-05
  • 2017-01-28
  • 1970-01-01
  • 2015-01-01
  • 2020-11-06
相关资源
最近更新 更多