Чтобы получить значение флажков из списка динамически создаваемых флажков в движке вида бритвы - PullRequest
1 голос
/ 17 июня 2011

Как найти значения флажков (т. Е. Проверены ли они или нет) из списка динамически создаваемых флажков в движке вида бритвы?код работает следующим образом ...

@foreach (var item in Model))
{
       <tr>
          <td class="Viewtd">
              @Html.ActionLink(item.Title, "Edit", new { id = item.id})
          </td>
          <td>
     @Html.CheckBox("ChkBox"+item.ThresholdID , false, new { id = item.id})                         
          </td>
       </tr>
}

Как получить значения этих флажков в контроллере?

1 Ответ

1 голос
/ 17 июня 2011

Сделайте это правильно: используя модели представления и шаблоны редактора.

Как всегда, начните с определения модели представления:

public class MyViewModel
{
    public string Title { get; set; }
    public string Id { get; set; }
    public bool IsThreshold { get; set; }
}

затем контроллер для заполнения этой модели представления:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        var model = new[] 
        {
            new MyViewModel 
            {
                Id = "1",
                Title = "title 1",
                IsThreshold = false,
            },
            new MyViewModel 
            {
                Id = "2",
                Title = "title 2",
                IsThreshold = true,
            },
            new MyViewModel 
            {
                Id = "3",
                Title = "title 3",
                IsThreshold = false,
            },
        };
        return View(model);
    }

    [HttpPost]
    public ActionResult Edit(MyViewModel model)
    {
        // This action will be responsible for editing a single row
        // it will be passed the id of the model and the value of the checkbox
        // So here you can process them and return some view
        return Content("thanks for updating", "text/plain");
    }
}

, а затем индексное представление (~/Views/Home/Index.cshtml):

@model IEnumerable<MyViewModel>

<table>
    <thead>
        <tr>
            <th></th>
            <th>Threshold</th>
        </tr>
    </thead>
    <tbody>
        @Html.EditorForModel()
    </tbody>
</table>

и, наконец, шаблон редактора (~/Views/Home/EditorTemplates/MyViewModel.cshtml):

@model MyViewModel
@{
    ViewData.TemplateInfo.HtmlFieldPrefix = "";
}
<tr>
    @using (Html.BeginForm("Edit", "Home"))
    {
        @Html.HiddenFor(x => x.Id)
        @Html.HiddenFor(x => x.Title)
        <td><input type="submit" value="@Model.Title" /></td>
        <td>@Html.CheckBoxFor(x => x.IsThreshold)</td>
    }
</tr>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...