Ich habe eine ASP.NET -MVC -Anwendung, die auf einem Server gehostet wird, auf dem mehrere Benutzer verwendet werden. Die Art und Weise, wie die Anwendung funktioniert, besteht darin, dass sie mehrere Seiten enthält, die alle Teil einer größeren Form sind. Daher ist jede Seite ein Formular, das dem Controller übernimmt, und die Daten werden dann in das Modell einbezogen und in der Sitzung gespeichert. Ich habe die Funktionalität für Schaltflächen gezogen, um Seiten mit Code aus diesem Stapelüberlaufpost zu navigieren. < /P>
@{
ViewBag.Title = "Name";
}
@model RegisterViewModel
@using (Html.BeginForm())
{
Name:
@Html.TextBoxFor(model => model.LastName)
@Html.TextBoxFor(model => model.FirstName)
@Html.TextBoxFor(model => model.MiddleName)
Last
First
Middle
@Html.LabelFor(model => model.AddressLine1)
@Html.TextBoxFor(model => model.AddressLine1)
@Html.LabelFor(model => model.AddressLine2)
@Html.TextBoxFor(model => model.AddressLine2)
@Html.LabelFor(model => model.AddressCity)
@Html.TextBoxFor(model => model.AddressCity)
@Html.LabelFor(model => model.AddressState)
@Html.DropDownListFor(model => model.AddressState, RegisterViewModel.States)
@Html.LabelFor(model => model.AddressZipCode)
@Html.TextBoxFor(model => model.AddressZipCode)
@Html.LabelFor(model => model.AddressCounty)
@Html.TextBoxFor(model => model.AddressCounty)
@Html.LabelFor(model => model.AddressCountry)
@Html.DropDownListFor(model => model.AddressCountry, RegisterViewModel.Countries)
}
< /code>
Die Ansicht sieht wie die oben genannten aus. Dieser hat zwei Drop -Downs: Staat und Land. Diese Listen sind im Modell definiert. < /P>
public class RegisterViewModel
{
[Required]
[DataType(DataType.Text)]
[Display(Name = "First Name")]
public string FirstName { get; set; }
[Required]
[DataType(DataType.Text)]
[Display(Name = "Last Name")]
public string LastName { get; set; }
[Required]
[DataType(DataType.Text)]
[Display(Name = "Middle Name")]
public string MiddleName { get; set; }
[Required]
[DataType(DataType.Text)]
[Display(Name = "Address Line 1:")]
public string AddressLine1 { get; set; }
[DataType(DataType.Text)]
[Display(Name = "Address Line 2:")]
public string AddressLine2 { get; set; }
[Required]
[DataType(DataType.Text)]
[Display(Name = "City:")]
public string AddressCity { get; set; }
[DataType(DataType.Text)]
[Display(Name = "State:")]
public string AddressState { get; set; }
[Required]
[DataType(DataType.Text)]
[Display(Name = "Country:")]
public string AddressCountry { get; set; }
[DataType(DataType.Text)]
[Display(Name = "Zip Code:")]
public string AddressZipCode { get; set; }
[DataType(DataType.Text)]
[Display(Name = "County:")]
public string AddressCounty { get; set; }
static public List Countries = new List()
{
new SelectListItem() {Text = "Select a Country" , Value = ""},
new SelectListItem() {Text = "USA" , Value = "US"},
new SelectListItem() {Text = "Afghanistan" , Value = "AF"},
new SelectListItem() {Text = "Albania" , Value = "AA"},
new SelectListItem() {Text = "Algeria" , Value = "AN"},
new SelectListItem() {Text = "American Samoa Islands" , Value = "AM"},
};
static public List States = new List()
{
new SelectListItem() {Text = "Select State" , Value = ""},
new SelectListItem() {Text = "Alabama" , Value = "Alabama"},
new SelectListItem() {Text = "Alaska" , Value = "Alaska"},
new SelectListItem() {Text = "Arizona" , Value = "Arizona"},
new SelectListItem() {Text = "Arkansas" , Value = "Arkansas"},
new SelectListItem() {Text = "California" , Value = "California"},
new SelectListItem() {Text = "Colorado" , Value = "Colorado"},
new SelectListItem() {Text = "Connecticut" , Value = "Connecticut"},
new SelectListItem() {Text = "Delaware" , Value = "Delaware"},
new SelectListItem() {Text = "Florida" , Value = "Florida"},
new SelectListItem() {Text = "Georgia" , Value = "Georgia"},
new SelectListItem() {Text = "Hawaii" , Value = "Hawaii"},
new SelectListItem() {Text = "Idaho" , Value = "Idaho"},
new SelectListItem() {Text = "Illinois" , Value = "Illinois"},
new SelectListItem() {Text = "Indiana" , Value = "Indiana"},
new SelectListItem() {Text = "Iowa" , Value = "Iowa"},
new SelectListItem() {Text = "Kansas" , Value = "Kansas"},
new SelectListItem() {Text = "Kentucky" , Value = "Kentucky"},
new SelectListItem() {Text = "Louisiana" , Value = "Louisiana"},
new SelectListItem() {Text = "Maine" , Value = "Maine"},
new SelectListItem() {Text = "Maryland" , Value = "Maryland"},
new SelectListItem() {Text = "Massachusetts" , Value = "Massachusetts"},
new SelectListItem() {Text = "Michigan" , Value = "Michigan"},
new SelectListItem() {Text = "Minnesota" , Value = "Minnesota"},
new SelectListItem() {Text = "Mississippi" , Value = "Mississippi"},
new SelectListItem() {Text = "Missouri" , Value = "Missouri"},
new SelectListItem() {Text = "Montana" , Value = "Montana"},
new SelectListItem() {Text = "Nebraska" , Value = "Nebraska"},
new SelectListItem() {Text = "Nevada" , Value = "Nevada"},
new SelectListItem() {Text = "New Hampshire" , Value = "New Hampshire"},
new SelectListItem() {Text = "New Jersey" , Value = "New Jersey"},
new SelectListItem() {Text = "New Mexico" , Value = "New Mexico"},
new SelectListItem() {Text = "New York" , Value = "New York"},
new SelectListItem() {Text = "North Carolina" , Value = "North Carolina"},
new SelectListItem() {Text = "North Dakota" , Value = "North Dakota"},
new SelectListItem() {Text = "Ohio" , Value = "Ohio"},
new SelectListItem() {Text = "Oklahoma" , Value = "Oklahoma"},
new SelectListItem() {Text = "Oregon" , Value = "Oregon"},
new SelectListItem() {Text = "Pennsylvania" , Value = "Pennsylvania"},
new SelectListItem() {Text = "Rhode Island" , Value = "Rhode Island"},
new SelectListItem() {Text = "South Carolina" , Value = "South Carolina"},
new SelectListItem() {Text = "South Dakota" , Value = "South Dakota"},
new SelectListItem() {Text = "Tennessee" , Value = "Tennessee"},
new SelectListItem() {Text = "Texas" , Value = "Texas"},
new SelectListItem() {Text = "Utah" , Value = "Utah"},
new SelectListItem() {Text = "Vermont" , Value = "Vermont"},
new SelectListItem() {Text = "Virginia" , Value = "Virginia"},
new SelectListItem() {Text = "Washington" , Value = "Washington"},
new SelectListItem() {Text = "West Virginia" , Value = "West Virginia"},
new SelectListItem() {Text = "Wisconsin" , Value = "Wisconsin"},
new SelectListItem() {Text = "Wyoming" , Value = "Wyoming"},
new SelectListItem() {Text = "Washington DC" , Value = "Washington DC"}
};
}
< /code>
Mit jeder Seite wird die Sitzung auf das Modell überprüft, und das Modell wird auch als Parameter an jeden Controller übergeben, und der Parameter wird mit der Sitzung verbunden und wieder in die Sitzung gespeichert. < /p>
public class NameController : Controller
{
public ActionResult Index(RegisterViewModel model)
{
if (ModelState.IsValid)
{
//_model = model;\
if (Session["model"] == null)
{
Session["Model"] = model;
}
else
{
model = Session["model"] as RegisterViewModel;
}
}
else
{
model = Session["model"] as RegisterViewModel;
}
return View(model);
}
[HttpPost]
[MultipleButton(Name = "action", Argument = "LoadPrevious")]
public ActionResult LoadPrevious(RegisterViewModel model)
{
RegisterViewModel rvm;
if (Session["Model"] == null)
{
rvm = new RegisterViewModel();
}
else
{
rvm = Session["Model"] as RegisterViewModel;
}
rvm = RegisterViewModel.JoinModels(model, rvm);
Session["model"] = rvm;
return RedirectToAction("Index", "Previous", new { Message = "" });
}
[HttpPost]
[MultipleButton(Name = "action", Argument = "LoadNext")]
public ActionResult LoadNext(RegisterViewModel model)
{
RegisterViewModel rvm;
if (Session["Model"] == null)
{
rvm = new RegisterViewModel();
}
else
{
rvm = Session["Model"] as RegisterViewModel;
}
rvm = RegisterViewModel.JoinModels(model, rvm);
Session["model"] = rvm;
return RedirectToAction("Index", "Next", new { Message = "" });
}
[HttpPost]
[MultipleButton(Name = "action", Argument = "LoadHome")]
public ActionResult LoadHome(RegisterViewModel model)
{
RegisterViewModel rvm;
if (Session["Model"] == null)
{
rvm = new RegisterViewModel();
}
else
{
rvm = Session["Model"] as RegisterViewModel;
}
rvm = RegisterViewModel.JoinModels(model, rvm);
Session["model"] = rvm;
return RedirectToAction("Index", "Home", new { Message = "" });
}
}
< /code>
Ich konnte es nicht lokal replizieren, aber wenn es sich um einen Server handelt, ändert ein Benutzer einen Wert in einer Dropdown -Down -Art und drückt als nächstes, und ein anderer Benutzer sieht diesen Wert in der Dropdown -Liste auf einer anderen Maschine, obwohl sie ihn nicht ausgewählt haben. Ich sehe auch, dass die Auswahl eines Wertes für einen Dropdown -Bereich manchmal dazu führen kann, dass zukünftige Dropdowns aus derselben Liste erstellt, aber an verschiedene Felder im Modell gebunden sind, die automatisch auf denselben Wert festgelegt werden. Wir haben dieses Problem lange Zeit behoben und haben kein Glück gehabt, das Problem herauszufinden, und es ist schwierig, jemanden mit einem ähnlichen Problem online zu finden. Lassen Sie mich wissen, ob weitere Informationen erforderlich sind.
ASP.NET -MVC -Formulare -Anwendung, die Dropdown mit Daten bevölkern, die von anderen Benutzern eingegeben wurden ⇐ HTML
-
- Similar Topics
- Replies
- Views
- Last post