2

これは少し奇妙です(少なくとも私にとっては)ので、準備してください。私は単純なオブジェクトを持っています

public class User
{
  public FirstName { get; set; }
  public LastName { get; set; }
}

そして非常に単純なビュー:

@Model User
@{
    Layout = null;
}
@Html.TextBoxFor(x => x.FirstName)
@Html.Raw(Model.FirstName)

そしてコントローラー:

public ActionResult GetUserInfo(Guid id, string firstName = "")
{
  User user;
  /* ... lookup the user instance ... */
  return View(user);
}

私が渡しているモデルには、FirstName = "John" と LastName = "Doe" があります。/Users/{Id} に移動すると、テキスト ボックスと Html.Raw の両方の値に "John" という値が含まれています。/Users/{Id}?firstName= に移動すると、テキスト ボックスの値が空になり、Html.Raw 出力の値が "John" になります。/Users/{Id}?firstName=Tom に移動すると、テキスト ボックスの値は「Tom」で、Html.Raw の値は「John」です。

コントローラーとビューの両方をデバッグしました。ビューに入るモデルには正しいプロパティがあります。私の質問:

なぜこうなった?これは今まで見たことがなく、他のタイプのオブジェクト、ビューなどで再現することはできません.

.NET 4.5 と MVC 3 を使用しています。

4

1 に答える 1