我想更好地了解控制器方法如何知道何时应该从发布数据或 url 中检索它接收的参数。
举个例子:
URL: /ModelController/Method/itemID
// Where itemID is the id (int) of the item in the database
POST: objectOrArray: {JSON Object/Array}
控制器看起来像这样:
[HttpPost]
public ActionResult InputResources(int? id, Object objectOrArray)
现在,不知何故,该方法足够聪明,可以id
在站点 URL 中Object
查找第一个参数 , 和HTTPPost
.
虽然这行得通,但我不知道为什么,结果我有时会遇到不可预测和不稳定的行为。例如,我似乎发现(尽管我不是 100% 确定)删除?
fromint? id
会使控制器方法立即假设它应该在 idHTTPPost
而不是 URL 中查找。
所以我想澄清以下几点:
究竟是什么告诉方法在哪里寻找数据?([HttpPost]
决定方法的属性?)
命名约定是否起作用?(例如删除?
或不使用id
作为变量名?)
放置变量的顺序是否有影响?(即放置在Object
之前id
)
我知道我可以通过反复试验或多或少地弄清楚这些东西,但我想要一个合格的解释,而不是继续基于观察的假设工作。
谢谢
乔波