MVC3 Razor ViewData - PullRequest
       5

MVC3 Razor ViewData

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

У меня есть онлайн-форма.например, он запрашивает имя и фамилию.Когда они отправляют, я отправляю их в другой вид.это второе представление имеет еще несколько текстовых полей (пароль, адрес электронной почты, имя пользователя), но также имеет имя и фамилию.Если они заполняют первую форму и заполняют имя / фамилию, я хочу, чтобы вторая форма отображала эти значения, поскольку они уже были заполнены.

в первой форме я помещаю всю заполненную информацию в TempData["entry"]

во второй форме я делаю эту проверку.

        if (TempData["entry"] != null)
        {
            var _model = (AccountInformationModel)TempData["entry"];

            ViewData["_firstName"] = _model.NameFirst;
            ViewData["_lastName"] = _model.NameLast;
        }

        return View("Register");

Я думаю, что, на мой взгляд, я немного запутался, как отображать эти данные в текстовом поле.У меня есть это, на мой взгляд, но это, кажется, не работает.

       <div class="editor-label">
            @Html.LabelFor(m => m.FirstName)
        </div>
        <div class="editor-field">
            @Html.TextBox("FirstName", ViewData["FirstName"])
            @Html.ValidationMessageFor(m => m.FirstName)
        </div>

ясно, строка, которая говорит ...

   @Html.TextBox("FirstName", ViewData["FirstName"])

не работает ..

1 Ответ

9 голосов
/ 23 марта 2011

Вы присваиваете значение «_firstName»

ViewData["_firstName"] = _model.NameFirst;

И затем пытаетесь отобразить «FirstName»

@Html.TextBox("FirstName", ViewData["FirstName"])

Попробуйте изменить его на:

@Html.TextBox("FirstName", ViewData["_firstName"])

Другой способ избежать подобных ошибок - определить новый класс, который будет содержать все ваши ключи данных представления.Таким образом, ваши строки хранятся в одном месте, что упрощает обслуживание и внесение изменений.

public static class ViewDataKeys
{
    public const string FirstName = "_firstName";
}

Затем, когда вы захотите получить к нему доступ, вы можете использовать

ViewData[ViewDataKeys.FirstName] = _model.NameFirst;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...