jmallory0001 Ответов: 1

Как вы передаете данные из текстового поля в представлении в метод действия в контроллере?


У меня есть следующее мнение:
@model ReportViewer.Models.ViewModel.EntryViewModel

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div> 
        @using (Html.BeginForm("UserReportView", "HomeController", FormMethod.Post))
        {
            <input id="UserToLookUp" type="text" width="50" name="UserToLookUp" />
            @Html.TextBoxFor(model => model.UserToLookUp)
            <input type = "submit" value = "View" />
        }
    </div>
</body>
</html>


Он использует следующую модель:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace ReportViewer.Models.ViewModel
{
    public class EntryViewModel
    {
        public string CurrentUser { get; set; }
        public string UserToLookUp { get; set; }
    }
}


Мой контроллер выглядит следующим образом:
using ReportViewer.Models.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace ReportViewer.Controllers
{
    public class HomeController : Controller
    {
        // GET: Home
        public ActionResult Index()
        {
            EntryViewModel vm = new EntryViewModel();
            return View(vm);
        }

        //[HttpPost]
        public ActionResult UserReportView(EntryViewModel vm)
        {
            TempData["ID"] = vm.UserToLookUp;

            return RedirectToAction("Index", "Viewer");
        }
    }
}


Мне нужно получить значение из текстового поля "UserToLookUp"в TempData ["ID"] ActionResult UserReportView. Виртуальная машина доступна в методе, но UserToLookUp всегда имеет значение null.


Что я уже пробовал:

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

j snooze

Если вы отлаживаете и устанавливаете точку останова, вы можете проверить, что свойство в объекте vm в вашем методе httppost пусто? Почему у вас есть HTML-разметка для userlookup и HTML-помощник mvc для нее? Вы просто пытаетесь одновременно увидеть, что прилипает? Если ваша Ручная HTML-разметка, я думаю, что имя должно быть "Object. Property", так что в вашем случае " EntityViewModel.UserLookup " для внутренней работы MVC, чтобы распознать, что нужно разместить обратно в нужном месте.

1 Ответов

Рейтинг:
9

Karthik_Mahalingam

Исправительные учреждения

@using (Html.BeginForm("UserReportView", "HomeController", FormMethod.Post))

<input id="UserToLookUp" type="text" width="50" name="UserToLookUp" />


jmallory0001

Большое вам спасибо! Я решил, что это будет что-то относительно простое.

Karthik_Mahalingam

добро пожаловать