簡體   English   中英

在post request asp.net mvc中更改模型屬性

[英]Change model property in post request asp.net mvc

我有一個問題。

這是一個簡短的例子。 這是模特。

    public class MyModel
    {
         string Title{get;set;}
    }

在視圖中我寫

@Html.TextBoxFor(model => model.Title)

這是控制器。

    public ActionResult EditNews(int id)
    {
        var model = new MyModel;
        MyModel.Title = "SomeTitle"

        return View("News/Edit", model);
    }
    //for post
    [HttpPost]
    public ActionResult EditNews(MyModel model)
    {
        //There is  problem.When I do postback and
        // change Title in this place,Title  doesn't change in view textbox
        //Only when I reload page it change.
        model.Title = "NEWTITLE"

        return View("News/Edit", model);
    }

它不會改變,因為默認情況下(許多人認為這是一個錯誤)當你返回相同的視圖時,MVC將忽略你在HttpPost對模型所做的更改。 相反,它在ModelState查找最初提供給視圖的值。

為了防止這種情況,您需要清除ModelState ,您可以通過以下操作在HttpPost的頂部執行:

ModelState.Clear();

暫無
暫無

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

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