我有一个非常简单的 Controller + View
public ActionResult Edit(string username)
{
return View(ComponentFactory.GetAdapter<IUserListAdapter>().Get(username));
}
和
@model BAP.Models.UserList
@using GrmanIT.Utils.Web
@using BAP.Models
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>Globale Benutzer</legend>
<div class="editor-label">
@Html.LabelFor(model => model.UserId)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.UserId)
@Html.ValidationMessageFor(model => model.UserId)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.UserName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.UserName)
@Model.UserName
@Html.ValidationMessageFor(model => model.UserName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Bundesland)
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.Bundesland, new SelectList((IEnumerable<BAP.Models.Bundesland>)ViewData["BundeslandList"], "Value", "Text"))
</div>
<div>
<input type="submit" value="@LocalizationHelper.LocalizedLiteral("Save").ToString()" />
</div>
</fieldset>
}
<div>
@Html.ActionLink(LocalizationHelper.LocalizedLiteral("BackToList").ToString(), "Index")
</div>
@Model.UserName
这是迄今为止我们在 MVC4 应用程序中拥有的最简单的控制器和视图,但是 - 它做了一些奇怪的事情:我得到了 TextBox,它是用@Html.EditorFor(model => model.UserName)预填充的UserId创建的模型而不是用户名
我对其进行了调试,并且一如既往地在UserName和UserId中有正确的值。您还可以看到,我在 View 中添加了两次@Model.UserName以查看它是否也正确呈现,是的,它打印的是 UserName 而不是 ID。
我还检查了对UserName -property 的引用,但没有找到任何可以修改它的引用。我的问题是 - 你有什么想法,代码可以在哪里修改或者如何找到它?
它只发生在这一个控制器上的这一操作上(约 25 个控制器和约 200 个操作)
谢谢