なぜこれが機能しないのか誰かが私に説明できますか?1ページに複数の送信ボタンに関する投稿をたくさん読んだのですが、バックグラウンドで何が起こっているのかわかりません。私はそれらの投稿で他の人がしているのを見ていることをフォローしようとしましたが、どれもうまくいかないようです。ここで実際に何が起こっているのかを理解しようとしています。ページが投稿されたときに正確に何が起こるかと関係があるのではないかと思います。
両方のボタンは完全に異なることをします。最初のボタンはフォームを投稿します。フォームの郵便番号では、Vehicle/Indexにリダイレクトされます。2番目のボタンはフォームを投稿せず、/ Vehicle/CreateNewVehiclePartに直接移動します。
これが私が欲しいものです。両方のボタンでフォームを送信する必要があります(先に進む前に、検証を実行して変更を車両に保存できるようにします)。Vehicleデータが保存されたら、クリックされたボタンに基づいて/ Vehicle/AddPartsToVehicleまたは/Vehicle/CreateNewVehiclePartに移動します。
<table class="layouttable">
<tr>
<td>
@using (Html.BeginForm("AddPartsToVehicle", "Vehicle", FormMethod.Post, null))
{
<input type="submit" value="Add Parts To Vehicle" />
}
</td>
<td>
@using (Html.BeginForm("CreateNewVehiclePart", "Vehicle", FormMethod.Post, null))
{
<input type="submit" value="Create New Vehicle Part" />
}
</td>
</tr>
</table>
車両モデルは次のとおりです。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
namespace ShopLog.Models
{
public class Vehicle
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid VehicleID { get; set; }
[Timestamp]
public Byte[] Timestamp { get; set; }
[Required]
[Display(Name = "Vehicle Name")]
[MaxLength(30, ErrorMessage = "The {0} must be no more than {2} characters long.")]
public string VehicleName { get; set; }
[Display(Name = "Assigned To")]
[MaxLength(30, ErrorMessage= "The {0} must be no more than {2} characters long.")]
public string AssignedTo { get; set; }
[Display(Name = "ID Number")]
[MaxLength(30, ErrorMessage = "The {0} must be no more than {2} characters long.")]
public string IDNumber { get; set; }
[Display(Name = "Active")]
public bool Active { get; set; }
[Display(Name = "Sign Out Vehicle")]
public bool SignOutVehicle { get; set; }
[Display(Name = "Have Title")]
public bool HaveTitle { get; set; }
[Display(Name = "Mileage or Hours")]
public int? MileageOrHours { get; set; }
[Display(Name = "Make")]
[MaxLength(30, ErrorMessage = "The {0} must be no more than {2} characters long.")]
public string Make { get; set; }
[Display(Name = "Model")]
[MaxLength(30, ErrorMessage = "The {0} must be no more than {2} characters long.")]
public string Model { get; set; }
[Display(Name = "Year")]
public int? Year { get; set; }
[Display(Name = "Engine")]
[MaxLength(30, ErrorMessage = "The {0} must be no more than {2} characters long.")]
public string Engine { get; set; }
[Display(Name = "Transmission Gears")]
public int? TransmissionGears { get; set; }
[Display(Name = "VIN")]
[MaxLength(30, ErrorMessage = "The {0} must be no more than {2} characters long.")]
public string VIN { get; set; }
[Display(Name = "Serial Number")]
[MaxLength(30, ErrorMessage = "The {0} must be no more than {2} characters long.")]
public string SerialNumber { get; set; }
[Display(Name = "Color")]
[MaxLength(30, ErrorMessage = "The {0} must be no more than {2} characters long.")]
public string Color { get; set; }
[Display(Name = "Air Filter")]
[MaxLength(30, ErrorMessage = "The {0} must be no more than {2} characters long.")]
public string AirFilter { get; set; }
[Display(Name = "Engine Oil Filter")]
[MaxLength(30, ErrorMessage = "The {0} must be no more than {2} characters long.")]
public string EngineOilFilter { get; set; }
[Display(Name = "Fuel Filter")]
[MaxLength(30, ErrorMessage = "The {0} must be no more than {2} characters long.")]
public string FuelFilter { get; set; }
[Display(Name = "Transmission Oil Filter")]
[MaxLength(30, ErrorMessage = "The {0} must be no more than {2} characters long.")]
public string TransmissionOilFilter { get; set; }
[Display(Name = "HydraulicOilFilter")]
[MaxLength(30, ErrorMessage = "The {0} must be no more than {2} characters long.")]
public string HydraulicOilFilter { get; set; }
[Display(Name = "Interior A/C Filter")]
[MaxLength(30, ErrorMessage = "The {0} must be no more than {2} characters long.")]
public string InteriorACFilter { get; set; }
[Display(Name = "Differential Oil")]
[MaxLength(30, ErrorMessage = "The {0} must be no more than {2} characters long.")]
public string DifferentialOil { get; set; }
[Display(Name = "Transmission Oil")]
[MaxLength(30, ErrorMessage = "The {0} must be no more than {2} characters long.")]
public string TransmissionOil { get; set; }
[Display(Name = "Engine Oil")]
[MaxLength(30, ErrorMessage = "The {0} must be no more than {2} characters long.")]
public string EngineOil { get; set; }
[Display(Name = "Tire Size")]
[MaxLength(30, ErrorMessage = "The {0} must be no more than {2} characters long.")]
public string TireSize { get; set; }
[Display(Name = "Tire Pressure")]
[MaxLength(30, ErrorMessage = "The {0} must be no more than {2} characters long.")]
public string TirePressure { get; set; }
[Display(Name = "Smog Due Date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
public DateTime? SmogDue { get; set; }
[Display(Name = "Registration Due Date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
public DateTime? RegistrationDue { get; set; }
[Display(Name = "Insurance Due Date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
public DateTime? InsuranceDue { get; set; }
[Display(Name = "License Plate")]
[MaxLength(30, ErrorMessage = "The {0} must be no more than {2} characters long.")]
public string LicensePlate { get; set; }
[Display(Name = "Owner")]
[MaxLength(30, ErrorMessage = "The {0} must be no more than {2} characters long.")]
public string Owner { get; set; }
[Display(Name = "Previous Owner")]
[MaxLength(30, ErrorMessage = "The {0} must be no more than {2} characters long.")]
public string PreviousOwner { get; set; }
[Display(Name = "Date Acquired")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
public DateTime? DateAcquired { get; set; }
[Display(Name = "Notes")]
[DataType(DataType.MultilineText)]
public string Notes { get; set; }
[Required(ErrorMessage="Vehicle Type is required.")]
public Guid VehicleTypeID { get; set; }
public Guid? TransmissionTypeID { get; set; }
//A vehicle can only have one VehicleType and one TransmissionType
[Display(Name = "Vehicle Type")]
public virtual VehicleType VehicleType { get; set; }
[Display(Name = "Transmission Type")]
public virtual TransmissionType TransmissionType { get; set; }
//A vehicle can have many Parts
[Display(Name = "Parts")]
public virtual ICollection<Part> Parts { get; set; }
//A vehicle can have many Warranties
[Display(Name = "Warranties")]
public virtual ICollection<Warranty> Warranties {get; set; }
}
}
パーツモデルは次のとおりです。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
namespace ShopLog.Models
{
public class Part
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid PartID { get; set; }
public string Name { get; set; }
public decimal Cost { get; set; }
[DataType(DataType.MultilineText)]
public string Notes { get; set; }
//A Part can belong to many Vehicles
public virtual ICollection<Vehicle> Vehicles { get; set; }
}
}