c # razor mvc textbox для цикла foreach - PullRequest
1 голос
/ 26 июня 2011

как можно получить данные из TextBoxFor помощника внутри цикла foreach?Я имею в виду:

в представлении:

foreach(Language l in ViewBag.Languages){
    <td>@l.lang</td>
    <td>@Html.TextBoxFor(model => model.Name)
}

и как я могу получить его в контроллере после публикации?

MyModel.Name //this returns the value of the first textbox within the foreach loop

Кстати модель. Имяопределяется в MyModel.cs как:

public string Name { get; set; }

Ответы [ 2 ]

1 голос
/ 19 августа 2016
@foreach (var _item in Model.ListSurvey)
{
    @Html.TextBoxFor(m=>m.Question, new { Value = @_item.Question })

}
1 голос
/ 26 июня 2011

Вы должны иметь возможность использовать ModelBinder в своем действии, используя:

public ActionResult MyAction(string[] name)
{
    foreach (var item in name)
    {
        // Process items
    }
}

Где name - это имя, автоматически присваиваемое текстовым полям как Html.TextBoxFor().


Редактировать : Если вы хотите изменить имя параметра с name на что-то более описательное, вы можете добиться этого с помощью Html.TextBox, хотя и с потерей ввода stong:

@Html.TextBox("SomeMoreDescriptiveName", Model.Name);

А затем в действии вашего контроллера:

public ActionResult MyAction(string[] SomeMoreDescriptiveName)
{
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...