これは少し奇妙です(少なくとも私にとっては)ので、準備してください。私は単純なオブジェクトを持っています
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 を使用しています。