gpt4 book ai didi

c# - .NET Core MVC Web 应用程序从查询字符串而不是模型获取值

转载 作者:行者123 更新时间:2023-12-02 14:33:13 25 4
gpt4 key购买 nike

如果模型属性名称与传递到操作中的参数名称相匹配,则 View 上显示的值是传入参数的值。

在下面的示例中,如果 URL 为/Car/Create?color=red,则网页将显示“红色”颜色。即使模型上的值为“蓝色”。

这是预期的行为吗?

型号:

namespace WebApplication1.Models
{
public class Car
{
public string Color { get; set; }

public Car(string color)
{
Color = color;
}
}
}

Controller :

    public ActionResult Create(string color)
{
Car car = new Car("Blue");
return View(car);
}

查看:

@model WebApplication1.Models.Car

@{
ViewData["Title"] = "Create";
}

<h1>Create</h1>

<h4>Car</h4>
<hr />
<div class="row">
<div class="col-md-4">
<form asp-action="Create">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="Color" class="control-label"></label>
<input asp-for="Color" class="form-control" />
<span asp-validation-for="Color" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-primary" />
</div>
</form>
</div>
</div>

最佳答案

是的,这不是一个错误,它是 ModelState 功能(使用模型绑定(bind)和验证)的副作用,该功能存储从请求获取的值,因此在验证错误的情况下它可以显示准确的值用户输入的值。相关解释herehere供您引用。

您可以手动清除ModelState:

ModelState.Clear();

关于c# - .NET Core MVC Web 应用程序从查询字符串而不是模型获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60645787/

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