簡體   English   中英

模型未在asp.net MVC中用Ajax發布更新?

[英]Model is not updated with ajax post in asp.net mvc?

我正在使用asp.net mvc應用程序。 在我的查看頁面中,我有如下代碼所示的文本框:

@Html.TextBoxFor(m => m.Id, new { @class = "form-control", @readonly = "readonly" })

另外,在表單中提交ajax帖子,

$('#btnSubmit').click(function(e)
    {
        $.ajax({
            url: '/button/Button',
            type: 'POST',
            data: {Id:1},
           });
    });

我的控制器:

 MasterM empcode = new MasterM();

        [HttpGet]
        public ActionResult Button()
        {

            var empcode = new MasterM();

            return View(empcode);
         }

        [HttpPost]
        public  ActionResult Button(MasterM model)
        {
            ModelState.Clear();
            if (!ModelState.IsValid)
            {
                return View(model);
            }
            return View(model);
        }

此表單提交后,文本框的值應更改為新值(1)。 我如何在控制器部分本身中實現這一目標。 我知道ajax成功后,我們可以手動更新元素值,但是我想在控制器部分實現這一點,並使用新值更新模型。

當您發布時,您只發送一個ID,而不發送整個模型,因此基本上

public  ActionResult Button(MasterM model) will be empty 

並且由於您要返回空集,因此不會更新該文本框。

您可以在此處執行以下兩項操作:1)將接收類型修改為

 Public  ActionResult Button(int Id)
    {
    MasterM model = new MasterM();
    model.Id = Id;
     if (!ModelState.IsValid)
                {
                    return View(model);
                }
                return View(model);
    }

2)如果要將Model保留為Controller中的參數,則需要在Jquery中序列化數據並將其發布。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM