Да, вы можете; но вам нужно указать метод POST.
Это не работает:
<form id="frmThing" action="@Url.Action("Gah", "Home")">
<input id="input_a" name="myArray[hashKey1]" value="123" />
<input id="input_b" name="myArray[hashKey2]" value="456" />
<input type="submit" value="Submit!"/>
</form>
Это делает:
<form id="frmThing" action="@Url.Action("Gah", "Home")" method="POST">
<input id="input_a" name="myArray[hashKey1]" value="123" />
<input id="input_b" name="myArray[hashKey2]" value="456" />
<input type="submit" value="Submit!"/>
</form>
Edit: Для того, чтобы на самом деле получить доступ к деталям в C#, в вашем примере вы могли бы сделать одно из следующих действий:
String first = collection[0];
String secnd = collection[1];
или
String first = collection["myArray[hashKey1]"];
String secnd = collection["myArray[hashKey2]"];
или даже:
foreach (var item in collection) {
string test = (string)item;
}
Редактировать два:
Вот трюк вы можете использовать, чтобы получить поведение, которое вы хотите видеть. Во-первых, определить метод расширения:
public static class ExtensionMethods
{
public static IEnumerable<KeyValuePair<string, string>> Each(this FormCollection collection)
{
foreach (string key in collection.AllKeys)
{
yield return new KeyValuePair<string, string>(key, collection[key]);
}
}
}
Затем в результате действия вы можете сделать это:
public ActionResult Gah(FormCollection vals)
{
foreach (var pair in vals.Each())
{
string key = pair.Key;
string val = pair.Value;
}
return View("Index");
}
жаль, что проблема не пост. Я не знаю, как получить доступ к данным в C#! – Dominik
Хорошо, я обновил свой ответ, чтобы показать, как это сделать. –
спасибо. извините, но я не знаю hashKey1, hasKey2, hashKeyN, но мне тоже нужен ключ ... – Dominik