Предупреждение: это мое первое веб-приложение.
У меня есть 4 модели, представления и контроллеры. Назовем их A, B, C, D (например, ModelA, ControllerA, ViewA). Все они являются базовыми представлениями со структурой списка.
/ControllerA/Index
Пользователь начинает с ViewA и выбирает первый элемент, который перенаправляет пользователя на ViewB
/ControllerB/Function?Aid=1
ViewB показывает другой список на основе выбора из ViewA. Затем пользователь Selects снова перенаправляется на ViewC.
/ControllerC/Function?Aid=1&Bid=2
ViewC показывает другой список, основанный на выборе из ViewA и ViewB. Затем пользователь Selects снова перенаправляется на ViewD.
/ControllerD/Function?Aid=1&Bid=2&Cid=3
ViewD показывает другой список, основанный на выборе из ViewA, ViewB и ViewC, затем пользователь выбирает снова.
На данный момент я хотел бы POST Aid, Bid, Cid и Did и сохранить их в своей базе данных. В идеале пользователь должен щелкнуть ссылку, данные будут опубликованы, а затем сайт перенаправит пользователя обратно на домашнюю страницу. Должен ли я создать другую модель и контроллер для обработки сообщения? Я думал о том, чтобы попытаться выполнить POST с контроллера D, но это не похоже на правильный способ сделать это.
Учебники msdn показывают публикацию только непосредственно из представления со строго типизированной моделью. Я как бы застрял, и я бы предпочел не делать из этого полный беспорядок.
Редактировать для кода Контроллер
public ActionResult myFunction(int Aid = 0, int Bid, int Cid)
{
//query D stuff here
if (D == null)
{
return HttpNotFound();
}
return View(D.ToList());
}
[HttpPost]
[InitializeSimpleMembership]
public ActionResult CreateQuote(int Aid, int Bid, int Cid, int Did)
{
Quote myQuote = new Quote();
myQuote.Customer_ID_FK = (int)Membership.GetUser().ProviderUserKey;
myQuote.A_ID_FK = Aid;
myQuote.B_ID_FK = Bid;
myQuote.C_ID_FK = Cid;
myQuote.D_ID_FK = Did;
if (ModelState.IsValid)
{
db.Quotes.Add(myQuote);
db.SaveChanges();
db.Quotes.Max();
int mymax = db.Quotes.Max(q => q.ID);
return RedirectToAction();
}
return View(D.ToList());
}
[HttpPost]
[InitializeSimpleMembership]
public ActionResult CreateQuote(Quote myQuote)
{
myQuote.Customer_ID_FK = (int)Membership.GetUser().ProviderUserKey;
if (ModelState.IsValid)
{
db.Quotes.Max();
int mymax = db.Quotes.Max(q => q.ID);
db.Quotes.Add(myQuote);
db.SaveChanges();
return RedirectToAction();
}
return View(D.ToList());
}
Aid, Bid, Cid, and Did
в объект (MyEntity в вашем примере), чтобы я мог отправить его. В моем представлении уже используется ModelD. Могу ли я добавить в представление вторую модель? 18.06.2013