[英]passing a query string variable that is a keyword in c#
我正在使用發布到URL的API。 傳遞的變量之一稱為“事件”。 由於event是C#中的關鍵字,因此我的代碼掛了。
public ActionResult Index(string event,string email, string category, string reason, string response, string type, string status)
{
return View();
}
解決方法是什么?
關鍵字通常不能用於參數名稱。 但是,您可以將定義更改為:
public ActionResult Index(string @event, string email, ...) {
根據C#4規范的第2.4.2節標識符:
前綴“ @”允許將關鍵字用作標識符,這在與其他編程語言進行接口時非常有用。 字符@實際上不是標識符的一部分,因此在其他語言中,標識符可能被視為普通標識符,沒有前綴。 帶@前綴的標識符稱為逐字標識符 。 允許將@前綴用於不是關鍵字的標識符,但是強烈建議您不要使用樣式。
這不僅適用於其他語言,還適用於使用C#的Reflection,這是MVC所做的(我假設是)。 因此,您的方法應為:
public ActionResult Index(string @event, string email, string category, string reason,
string response, string type, string status)
{
return View();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.