モデルがあるとしましょう:
public MyClass
{
public int Id {get;set;}
public string Name {get;set;}
public int ContentId {get;set;}
}
コントローラのアクションにアクセスするとします。
[HttpGet]
public ActionResult Create(int id)
{
MyClass mc = new MyClass();
mc.Id = 49;
mc.ContentId = id;
mc.Name = "Sample";
return View("Create", mc);
}
「作成」ビューはMyClassで強く型付けされており、ヘルパー@ Html.TextBoxFor(x => x.Id)があります。
MyController / Create?id = 15を呼び出してアクションを呼び出すと、テキストボックスに49ではなく15の値が表示されます。MVCはアクションで設定されたIDプロパティを無視し、クエリのIDプロパティを使用します。
この振る舞いがどこにも文書化されていないことを考えると、これはかなり奇妙だと思います。
これについて何か良いコメントはありますか?