1

我正在尝试下面解释的基本 asp .net mvc 项目配置;

在第一次提交之前,结果在照片中是预期的,在提交后 textbox( @Html.TextBoxFor(model => model.Name)) 和 text( @Model.Name) 显示不同的值,如在照片中看到的,出乎意料;为什么会这样?尽管它们的模型是独一无二的,但它们显示出不同的值。

在此处输入图像描述

模型:

 public class Personnel
{
    public string Name { get; set; }
}

看法:

@model deneme.Models.Personnel

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>


@using (Html.BeginForm("Index", "Home"))
{
    @Html.TextBoxFor(model => model.Name)

    <br/>
    <br/>

    @Model.Name

    <br/>
    <br/>

    <input type="submit" value="submit" />
}

控制器:

public ActionResult Index(Personnel personnel)
{
     if (string.IsNullOrEmpty(personnel.Name))
     {
         personnel.Name = "Ahmet";
     }
     else
     {
         personnel.Name = personnel.Name + "server";
     }

     return View(personnel);
}
4

1 回答 1

1

编辑:我之前的回答没有回答你的问题。

如果您添加ModelState.Clear()到控制器操作,它将按您的意愿工作。

public ActionResult Index(Personnel personnel)
{
     if (string.IsNullOrEmpty(personnel.Name))
     {
         personnel.Name = "Ahmet";
     }
     else
     {
         personnel.Name = personnel.Name + "server";
     }

     ModelState.Clear();
     return View(personnel);
}
于 2012-07-25T00:03:31.033 回答