首页 > 后端开发 > C++ > 为什么我的TextBoxfor在MVC中重定向后显示' Latitude2”而不是' Latitude”?

为什么我的TextBoxfor在MVC中重定向后显示' Latitude2”而不是' Latitude”?

Mary-Kate Olsen
发布: 2025-02-01 08:21:10
原创
317 人浏览过

Why Does My TextBoxFor Display

> mvc textboxfor:初始与更新值

>

此示例在ASP.NET MVC应用程序中演示了一个常见的问题,其中显示出意外的初始值而不是更新的值。> TextBoxFor>让我们检查MVC操作并查看方案:>

控制器操作:

> view:

[HttpPost]
public ActionResult SomeInformation()
{
    var test1 = new DataSites { Latitude = "LATITUDE2" };
    return RedirectToAction("Index", test1);
}

[HttpPost]
public ActionResult Index(DataSites dataSiteList)
{
    if (dataSiteList.Latitude != null)
    {
        var test = new DataSites { Latitude = "LATITUDE" };
        return View(test);
    }
    return View(dataSiteList);
}
登录后复制

模型:

@model miniproj2.Models.DataSites

<p>
    @Html.TextBoxFor(x => x.Latitude)
</p>
登录后复制

>问题:

>在导航至
public class DataSites
{
    public string Latitude { get; set; }
}
登录后复制
(将纬度设置为“ latitude2”)并重定向到

>时,视图显示“ latitude2”,而不是预期的“ latitude”。/Home/SomeInformation>说明:Index

<>>带有模型将数据传递为路由值。 然后使用此值(“ Latitude2”)将默认模型活页夹填充。 即使操作试图分配新值(“纬度”),现有>值也优先。

>解决方案: RedirectToAction ModelState有效地解决了两种方法:Index ModelState 在分配新值之前,

>

clear ModelState:清除

  1. 避免模型绑定:直接在>操作中初始化一个新的ModelState实例,绕过模型完全绑定: Index
  2. 在这些解决方案之间进行选择
取决于您是否需要从
[HttpPost]
public ActionResult Index(DataSites dataSiteList)
{
    ModelState.Clear(); // Add this line

    if (dataSiteList.Latitude != null)
    {
        var test = new DataSites { Latitude = "LATITUDE" };
        return View(test);
    }
    return View(dataSiteList);
}
登录后复制
>操作中的其他目的访问数据。 如果不是,则第二个解决方案(避免模型结合)更加干净,更有效。 否则,清除
    是必要的。
  1. >

以上是为什么我的TextBoxfor在MVC中重定向后显示' Latitude2”而不是' Latitude”?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板