Я упомянул несколько вопросов (Q1, Q2) относительно этого вопроса, но я думаю, что мой немного отличается.Ошибка при прохождении объекта модели для просмотра
Я создал страницу входа в систему и при успешном входе в нее должен открыть индексный указатель домашнего контроллера. Поскольку мой индексный вид требует, чтобы модель привязывала данные таблицы, мне нужно передать объект модели вместе с представлением в действии кнопки входа. Надеюсь, вы получите сценарий.
Вот мой Войти Контроллер:
public ActionResult Login() //Get Method for Login
{
return View("Login");
}
[HttpPost] // Post Method on Login
public ActionResult Defaults(string username, string password)
{
FloorFactor ff = new FloorFactor(); // tried to create model object to pass in view
try
{
Login_Details login_detail = db.Login_Details.Single(x => (x.UserName == username) && (x.Password == password));
if (login_detail != null)
{
return View("../Home/Index",ff); // need to get view Index of home controller.
}
}
catch { }
return View("Login");
}
Необходимой Часть Index.cshtml
@model IEnumerable<Pricing_Tool_Test.FloorFactor>
@{
ViewBag.Title = "Index";
}
Я знаю, что модель требуется Iennumerable вида модели объекта, но в моем Метод Defaults не позволяет мне передавать объект модели IEnnumerable.
любая помощь, как я могу достичь этого?
Редактировать:
Оба контроллера различны. Кнопка входа в систему должна загружать представление Homecontroller. он генерирует исключение, смотрите на изображении. Если я прокомментирую эту строку, она генерирует ошибку, упомянутую выше. :
EDIT 2: Главная/Создать Coding
public PartialViewResult Create()
{
return PartialView("_CreatePartial");
}
// POST: Home/Create
[HttpPost]
public ActionResult Create([Bind(Include = "FloorFactorPercentage,FromDate,ToDate")]FloorFactor floorfactor)
{
if (ModelState.IsValid)
{
db.FloorFactors.Add(floorfactor);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(floorfactor);
}
на ваш взгляд, просто использовать @model Pricing_Tool_Test.FloorFactor , как вы передаете один элемент, так что не нужно IEnumerable –
об успешном входе в систему он загружает таблицу контента на Index.cshtml так что это не единственный элемент, так это требует IEnumerable –
ваш код просто передает один пустой объект с именем 'ff' –