簡體   English   中英

重載ASP.NET MVC操作

[英]Overload ASP.NET MVC Actions

如何重載ASP.NET MVC中的操作,但是支持GET QueryString? 我試着這樣做:

public JsonResult Find(string q)
{
    ...
}

public JsonResult Find(string q, bool isBlaBla)
{
    ...
}

但每當我訪問/controller/find?q=abc/controller/find?q=abc&isBlaBla=false它會拋出System.Reflection.AmbiguousMatchException

如何解決這個問題?

實際上您不需要創建重載。 您需要做的就是創建一個包含您期望的所有可能參數的單一操作方法,它將為您映射值(如果可能)。

public JsonResult Find(string q, bool isBlaBla)
{

}

如果您使用的是C#4.0,甚至可以使用Optional Parameters和Name Arguments

ASP.NET不支持使用相同的HTTP謂詞進行操作重載。

你應該使用路線,例如find/abcfind/abc/false

如果必須使用查詢字符串,則不能使用任何參數並訪問HttpContext的查詢字符串

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM