2013-04-10 61 views
1

这有点奇怪(至少对我而言),所以要做好准备。我有一个简单的对象MVC Razor - 查询字符串影响TextBoxFor和Model属性的值

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(Guid id, string firstName = "") 
{ 
    // Look up user, return object 
} 

我传递模型有名字= “约翰” 和姓氏=“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

回答