首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在MVC3中使用modelstate.isvalid验证控制器内部的数据

在MVC3中使用modelstate.isvalid验证控制器内部的数据
EN

Stack Overflow用户
提问于 2012-02-24 15:13:21
回答 2查看 1.4K关注 0票数 1

我是ASP.NET MVC3的新手,但我有大约4年的使用pretty的经验。

我正在尝试构建一个MVC3 web应用程序,但我在验证我的模型时遇到了问题。这是一个测试控制器,向你展示我正在尝试做但没有成功的事情。

我试图将一个值传递给控制器内部的模型,但它没有将其考虑在内。

我尝试为junk.sentence使用modelstate.setmodelvalue,但它保留了POST请求中的值,该值是无效的,并且我想在控制器中默认更改该值(出于测试目的)。

有人能帮上忙吗?

提前谢谢。

迈克尔

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    [HttpPost]
    public ActionResult Create(Junk junk)
    {
        //ModelState.Clear();
        junk.sentence = "coucou";

        ModelState.SetModelValue("sentence", new ValueProviderResult(junk.sentence, junk.number, null));


        //ModelState
        if (ModelState.IsValid)
        {
            db.Junks.Add(junk);
            db.SaveChanges();
            return RedirectToAction("Index");  
        }

        return View(junk);
    }

    //
    // GET: /Junk/Edit/5

    public ActionResult Edit(int id)
    {
        Junk junk = db.Junks.Find(id);
        return View(junk);
    }
EN

回答 2

Stack Overflow用户

发布于 2012-02-24 15:17:29

尝试将其从模型状态中删除:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[HttpPost]
public ActionResult Create(Junk junk)
{
    junk.sentence = "coucou";

    //ModelState
    if (ModelState.IsValid)
    {
        db.Junks.Add(junk);
        db.SaveChanges();
        return RedirectToAction("Index");  
    }

    ModelState.Remove("sentence");
    return View(junk);
}

这假设在您的视图中有一个相应的输入字段,该字段是使用一些helpers (例如EditorFor )生成的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Html.EditorFor(x => x.sentence)

或者:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Html.TextBoxFor(x => x.sentence)
票数 1
EN

Stack Overflow用户

发布于 2012-02-24 15:20:57

当模型状态中添加了模型错误时,ModelState.IsValid将返回false。MVC验证模型上的属性,并在ModelState中为您创建一个错误列表。您必须从模型状态中删除您希望从控制器操作中忽略的错误。然后,您可以更新模型上的实际值。(Darin Dimitrov向你展示了一个这样做的例子)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9433074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文