在MVC應用程序,當你想從傳遞一個ID這樣的例子:MVC爲什麼只有匿名類型通過?
@if (Model.ImageData != null) {
<div style="float:left; margin-right:20px">
<img width="75" height="75" src="@Url.Action("GetImage",
"Product", new {Model.ProductID})"/>
的控制器操作方法是這樣的:
public FileContentResult GetImage(int productId)
{
Product prod = repository.Products.FirstOrDefault
(p => p.ProductID == productId);
if (prod != null)
{
return File(prod.ImageData, prod.ImageMimeType);
}
else {
return null;
}
}
爲什麼是必須的,它僅當我使用匿名新的{Model.ProductID}工作嗎?當我試圖傳遞Model.ProductID時,如果Model是type的產品,則不傳遞Id。這個怎麼用?
謝謝,主要是清除了它,然而我想問一下,如果有方法通過方法簽名告訴我,匿名類型是我必須使用的一種方法才能正常工作?例如,我還注意到,通過MapRoutes添加路由時,默認屬性也是由匿名類型創建的。是否每當一個方法簽名期望和對象類型,我應該使用匿名類型? –
嗨安德魯 - 這是所有與輔助方法生成的HTTP查詢字符串(或POST數據),如'Url.Action',只要它產生一個像URL http:// somesite/someapp/mycontroller/GetImage ?productId參數= 12345'。我不太清楚爲什麼MS注意在MapRoutes中使用匿名類型,因爲這顯然需要反思:) – StuartLC