PHP數組可以通過POST方法捕獲ASP.NET MVC嗎?PHP數組可以通過POST方法捕獲ASP.NET MVC嗎?
查詢字符串:WebAccess的/ ArrayTest中VAL [] = 1 & VAL [] = 2 & VAL [] = 3
我寫:?的ActionResult ArrayTest中(字符串[] VAL)
但這僅工作,如果查詢字符串中刪除「[]」
PHP數組可以通過POST方法捕獲ASP.NET MVC嗎?PHP數組可以通過POST方法捕獲ASP.NET MVC嗎?
查詢字符串:WebAccess的/ ArrayTest中VAL [] = 1 & VAL [] = 2 & VAL [] = 3
我寫:?的ActionResult ArrayTest中(字符串[] VAL)
但這僅工作,如果查詢字符串中刪除「[]」
在DefaultModelBinder內置的ASP.NET MVC無法處理軌/ PHP/jquery1.4風格陣列職位(這是你指的是與VAL [] = 1 & VAL什麼[] = 2 & val [] = 3)。
你必須要麼創建一個自定義模型綁定器(谷歌,大量的實例),或者加算指標括號內像這樣:
val[0]=1&val[1]=2&val[2]=3
以及指數不能有任何遺漏號碼。
我已經解決了這個問題,只是在提交表單時添加了索引。即在jQuery的:
$('form').find('input, select, textarea').attr('name', function(index, old) {
return old.replace(/\[\]/, '[' + index + ']');
});
(不是一個答案 - 但它很難這種使用SO發表評論我要解釋)
您可以通過暗示,這是真的什麼還有很困惑的事情用PHP做。另外,你不會說你爲了使它工作而刪除了哪個'[]'。在落後的ASP程序員,可能會更容易理解:
<form method='POST' action='something.asp'>
<input type='text' name='val[]'>
<input type='text' name='val[]'>
<input type='text' name='val[]'>
<input type='submit' value='go'>
</form>
使用一些web開發語言從每三個文本字段中的數據隨後提供名爲「VAL」的數組。如何在asp.net中複製這種行爲?
C.
public class PhpStyleArrayBinder : DefaultModelBinder,IModelBinder
{
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var val = bindingContext.ValueProvider.GetValue(bindingContext.ModelName+"[]");
if (val != null)
return val;
return base.BindModel(controllerContext, bindingContext);
}
}
用法:
public JsonResult Get([ModelBinder(typeof (PhpStyleArrayBinder))] IEnumerable<string> data)
{
//
}
http://pavelsvetlov.blogspot.com/2016/04/mvcnet-modelbinder-phpstyle-array.html
我一個,和其他用戶的最有可能很多不知道你正在努力實現。 POST不能通過查詢字符串。 – 2010-03-26 13:10:13