При использовании строго типизированных моделей представления можно ли публиковать значения обратных флажков не в модели представления? - PullRequest
2 голосов
/ 11 марта 2011

Я довольно новичок в .net. Я использовал строго типизированные viewmodels. У меня есть общий вопрос: возможно ли добавить флажки (или кнопки) к представлению, не добавляя их в модель представления, и получить доступ к значению (отмечено или не отмечено) в действии контроллера? Если это так, пожалуйста, объясните, как. Должен ли метод быть пост? Спасибо

Ответы [ 2 ]

1 голос
/ 11 марта 2011

Вы всегда можете получить данные формы, используя:

Request.Form["FieldName"]

Или добавьте их в качестве аргументов в метод действия обратной передачи:

[HttpPost]
public ActionResult Edit(MyModel modelData, string extraField) {

Но почему бы не добавить их в вашу модель, это будет намного проще, если вы захотите использовать исправление ошибки валидации.

0 голосов
/ 11 марта 2011

Я не совсем понимаю, что вы подразумеваете под добавлением флажков в представление без добавления их в модель представления , но позвольте мне попытаться проиллюстрировать это на примере:

Предположим, у вас есть следующая форма:

<a href="#" id="add">Add checkbox</a>

@using (Html.BeginForm())
{
    <div id="placeholder"></div>
    <input type="submit" value="OK" />
}

<script type="text/javascript">
    var index = 0;
    $('#add').click(function () {
        $('#placeholder').append(
            $('<input/>', {
                type: 'checkbox',
                name: 'foo[' + index + ']',
                value: 'true'
            })
        ).append(
            $('<input/>', {
                type: 'hidden',
                name: 'foo[' + index + ']',
                value: 'false'
            })
        );
        index++;
        return false;
    });
</script>

и контроллер, который получил бы форму POST:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Index(IEnumerable<bool> foo)
    {
        // When you submit the form this action will be invoked
        // and you will get an list of boolean values corresponding
        // to each checkbox state
        return View();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...