Sorry für den verwirrenden Titel, ich habe Schwierigkeiten zu erklären, was ich versuche zu erreichen. Ich habe eine Ansicht, die derzeit 'Reisen' aus meiner Datenbank anzeigt (Ziel, Typ, Preis usw.). Ich habe einen Aktionslink benutzt und mein Ziel ist es, eine Reise auszuwählen, auf den Aktionslink zu klicken und auf eine Buchungsseite zu gelangen. Auf der Buchungsseite werden die Informationen für den ausgewählten Aktionslink angezeigt, und ich werde eine Dropdown-Liste hinzufügen, um die Anzahl der Personen auszuwählen, die auf der Reise sind.Wie würde ich Daten aus einer Ansicht in einer anderen Ansicht anzeigen?
Was ist der beste Weg, dies zu erreichen? Wäre eine Sitzung hier machbar? Ich bin völlig neu in MVC und versuche immer noch, meinen Kopf einzuwickeln, so wie es funktioniert! Vielen Dank im Voraus an jeden, der dies liest!
TripController Code -
namespace WebApplication5.Controllers
{
public class TripController : Controller
{
// GET: Trip
public ActionResult Index()
{
return View();
}
public ActionResult List()
{
List<Trips> trips = new List<Trips>();
using (SampleModel dc = new SampleModel())
{
trips = dc.Trips.ToList();
}
return View(trips);
}
public ViewResult Booking()
{
return View();
}
}
}
TripsModel Code -
[Table("Trips")]
public partial class Trips
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int TripID { get; set; }
[StringLength(50)]
public string Destination { get; set; }
[StringLength(50)]
public string Type { get; set; }
public int? Price { get; set; }
}
Trip Listview-Code -
@model List<WebApplication5.Models.DB.Trips>
@{
ViewBag.Title = "List of trips";
var grid = new WebGrid(source: Model, canPage: true, rowsPerPage: 10);
grid.Pager(WebGridPagerModes.All);
}
<h2>List of Trips</h2>
<div id="content">
@grid.GetHtml(
tableStyle: "webgrid-table",
headerStyle: "webgrid-header",
footerStyle: "webgrid-footer",
alternatingRowStyle: "webgrid-alternating-row",
rowStyle: "webgrid-row-style",
columns: grid.Columns(
grid.Column(columnName: "TripID", header: "TripID"),
grid.Column(columnName: "Destination", header: "Destination"),
grid.Column(columnName: "Type", header: "Type"),
grid.Column(columnName: "Price", header: "Price"),
grid.Column(columnName: "Book", format: (item) => Html.ActionLink("Book", "Booking", new { id = item.TripID }))
))
</div>
TripBookingView cod e -
@model WebApplication5.Models.DB.Trips
Ein Link ändern, um diese leichter machen würde, aber mit Ihnen aktuelle UI, müssen Sie die '.click()' Ereignis der Schaltfläche zu handhaben und bauen eine URL zu der Methode, zu der Sie umleiten möchten (einschließlich des Werts des ausgewählten Optionsfelds, die die ID der "Reise" wäre) und dann 'location.href = yourUrl;' –
Wie wird ein Link es einfacher machen, und was müsste ich ändern, um die Radioknöpfe durch Links zu ersetzen? Danke @StephenMuecke – ACostea
Weil es einfach '@ Html.ActionLink (" Book "," Booking ", neu {id = item.TripID})' sein kann (siehe [diese Antwort] (http://stackoverflow.com/questions/ 6167903/using-data-in-a-html-aktionlink-inside-a-webgrid-spalte-nicht-möglich) für mehr details) –