如果是這樣,我應該如何傳遞參數?會匹配枚舉名稱的字符串是否可以?如果我傳遞一個與枚舉項匹配的下拉框,這將會很方便。我可以將枚舉傳遞給控制器,以便模型綁定器綁定它嗎?
如果我在將數據提交回來時可以輕鬆地綁定到枚舉,那麼使用this answer中提供的解決方案將會很有用。
如果是這樣,我應該如何傳遞參數?會匹配枚舉名稱的字符串是否可以?如果我傳遞一個與枚舉項匹配的下拉框,這將會很方便。我可以將枚舉傳遞給控制器,以便模型綁定器綁定它嗎?
如果我在將數據提交回來時可以輕鬆地綁定到枚舉,那麼使用this answer中提供的解決方案將會很有用。
是的,具有控制器就像當:
enum MyAction { Lalala }
public ActionResult Index(MyAction action) { ... }
你可以做Index/Lalala
,一切工作正常。
如果您需要更復雜的綁定(如將某個字符串值映射到複雜類),請使用StructureMap之類的東西。
它會變得更好,你也可以通過Enum
爲獲取參數
@Html.ActionLink("Email Quote", "UnitDetails", "Journey", new { product = product.ProductTitle, button = "email" }, new { @class = "btn btn--main btn--main-orange" })
該結束了以下網址:
[SessionTimeout]
public ActionResult UnitDetails(QuoteViewModel viewModel)
QuoteViewModel:http://localhost:50766/UnitDetails?product=Your%20quote&button=email
接受這個樣子的
操作方法和枚舉:
public class QuoteViewModel : IQuoteViewModel
{
public QuoteViewModelProducts Products { get; set; }
public bool HasDiscount { get; set; }
public string Product { get; set; }
public DetailButtonType Button { get; set; }
}
public enum DetailButtonType
{
Buy,
Callback,
Email
}
我最喜歡的是即使你將enum參數和值作爲小寫字母正確地映射到大寫屬性和值,這使我的笑容非常豐富。