gpt4 book ai didi

asp.net-mvc - MVC View 渲染不尊重 View 模型中传递的数据

转载 作者:行者123 更新时间:2023-12-01 12:49:51 25 4
gpt4 key购买 nike

我正在尝试创建一个 MVC 操作方法,允许用户逐步查看一系列数据库记录。每次用户发布更新时,都会将其提交到数据库并检索和呈现新记录以供审核。

但是,我的 MVC View 似乎结合了来自发布的 View 模型和作为数据库查询结果创建的新 View 模型的数据。当 View 只是从 View 模型中呈现属性值时,它会正确地使用传递给它的 View 模型实例中的那些值,但是当它将 HTML 表单控件绑定(bind)到 View 模型属性时,它会使用发布的 View 模型中的值。这意味着单个 View 能够为单个 View 模型实例上的单个属性显示两个不同的值:

enter image description here

这是 action 方法的一个非常简化的版本...

public ActionResult Index(MyViewModel model)
{
if (ModelState.IsValid)
{
// Write the posted model data to the repository
// ...

// Retrieve a new entity for the user to work on
var alternate = new MyViewModel { Name = "New Name" };

return View(alternate);
}

return View(model);
}

...和 View 模型...

public class MyViewModel
{
[Required]
public string Name { get; set; }
}

...以及用于创建上述图像的 View ...

@model Mvc4TestApplication.ViewModels.MyViewModel

Name: @Model.Name
@using (Html.BeginForm())
{
@Html.LabelFor(model => model.Name)
@Html.TextBoxFor(model => model.Name)
<input type="submit" value="Submit"/>
}

看来我误解了 MVC View 发现其模型数据的方式。我应该使用一些替代语法来明确告诉 View 将其表单控件绑定(bind)到传递给它的 View 模型吗?

谢谢,

蒂姆。

最佳答案

尝试清除 ModelState。 htmlhelpers 使用 ModelState 获取值。

ModelState.Clear();

在返回 View() 之前

关于asp.net-mvc - MVC View 渲染不尊重 View 模型中传递的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13340685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com