Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 .NET MVC 3提交按钮执行不同的操作_Asp.net Mvc 3_Input_Submit_Multiple Forms - Fatal编程技术网

Asp.net mvc 3 .NET MVC 3提交按钮执行不同的操作

Asp.net mvc 3 .NET MVC 3提交按钮执行不同的操作,asp.net-mvc-3,input,submit,multiple-forms,Asp.net Mvc 3,Input,Submit,Multiple Forms,有人能给我解释一下为什么这样不行吗?我读过很多关于一个页面上有多个提交按钮的帖子,但我不明白后台发生了什么。我试着跟随别人在那些帖子里做的事情,但似乎都不管用。我只是想了解这里到底发生了什么。我怀疑这与页面发布时的具体情况有关 两个按钮的作用完全不同。第一个按钮发布表单。在表单的邮政编码中,它随后被重定向到车辆/索引。第二个按钮不会发布表单,而是直接转到/Vehicle/CreateNewVehiclePart 这是我想要的。我希望两个按钮都提交表单(这样我就可以在继续之前执行验证并保存对车辆的

有人能给我解释一下为什么这样不行吗?我读过很多关于一个页面上有多个提交按钮的帖子,但我不明白后台发生了什么。我试着跟随别人在那些帖子里做的事情,但似乎都不管用。我只是想了解这里到底发生了什么。我怀疑这与页面发布时的具体情况有关

两个按钮的作用完全不同。第一个按钮发布表单。在表单的邮政编码中,它随后被重定向到车辆/索引。第二个按钮不会发布表单,而是直接转到/Vehicle/CreateNewVehiclePart

这是我想要的。我希望两个按钮都提交表单(这样我就可以在继续之前执行验证并保存对车辆的更改)。保存车辆数据后,我想根据单击的按钮移动到/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>

@使用(Html.BeginForm(“AddPartsToVehicle”,“Vehicle”,FormMethod.Post,null))
{
}
@使用(Html.BeginForm(“CreateNewVehiclePart”,“Vehicle”,FormMethod.Post,null))
{
}
以下是车型:

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; }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.ComponentModel.DataAnnotations;
利用制度全球化;
名称空间ShopLog.Models
{
公车
{
[Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)]
公共Guid车辆ID{get;set;}
[时间戳]
公共字节[]时间戳{get;set;}
[必需]
[显示(名称=“车辆名称”)]
[MaxLength(30,ErrorMessage={0}的长度不能超过{2}个字符。”)]
公共字符串VehicleName{get;set;}
[显示(Name=“分配给”)]
[MaxLength(30,ErrorMessage={0}的长度不能超过{2}个字符。”)]
分配给{get;set;}的公共字符串
[显示(Name=“ID Number”)]
[MaxLength(30,ErrorMessage={0}的长度不能超过{2}个字符。”)]
公共字符串IDNumber{get;set;}
[显示(Name=“活动”)]
公共bool活动{get;set;}
[显示(Name=“注销车辆”)]
公共bool SignOutVehicle{get;set;}
[显示(Name=“Have Title”)]
公共bool HaveTitle{get;set;}
[显示(Name=“里程或小时”)]
公共int?英里公路{get;set;}
[显示(Name=“Make”)]
[MaxLength(30,ErrorMessage={0}的长度不能超过{2}个字符。”)]
公共字符串Make{get;set;}
[显示(Name=“Model”)]
[MaxLength(30,ErrorMessage={0}的长度不能超过{2}个字符。”)]
公共字符串模型{get;set;}
[显示(Name=“Year”)]
公共整数?年份{get;set;}
[显示(Name=“引擎”)]
[MaxLength(30,ErrorMessage={0}的长度不能超过{2}个字符。”)]
公共字符串引擎{get;set;}
[显示(Name=“变速箱档位”)]
公共int?transmissiongear{get;set;}
[显示(Name=“VIN”)]
[MaxLength(30,ErrorMessage={0}的长度不能超过{2}个字符。”)]
公共字符串VIN{get;set;}
[显示(名称=“序列号”)]
[MaxLength(30,ErrorMessage={0}的长度不能超过{2}个字符。”)]
公共字符串序列号{get;set;}
[显示(Name=“Color”)]
[MaxLength(30,ErrorMessage={0}的长度不能超过{2}个字符。”)]
公共字符串颜色{get;set;}
[显示(名称=“空气过滤器”)]
[MaxLength(30,ErrorMessage={0}的长度不能超过{2}个字符。”)]
公共字符串空气过滤器{get;set;}
[显示(Name=“发动机机油滤清器”)]
[MaxLength(30,ErrorMessage={0}的长度不能超过{2}个字符。”)]
公共字符串EngineILFilter{get;set;}
[显示(Name=“燃油滤清器”)]
[MaxLength(30,ErrorMessage={0}的长度不能超过{2}个字符。”)]
公共字符串FuelFilter{get;set;}
[显示(名称=“变速箱机油滤清器”)]
[MaxLength(30,ErrorMessage={0}的长度不能超过{2}个字符。”)]
公共字符串传输ILFilter{get;set;}
[显示(名称=“液压油滤清器”)]
[MaxLength(30,ErrorMessage={0}的长度不能超过{2}个字符。”)]
公用字符串液压油过滤器{get;set;}
[显示(Name=“内部空调过滤器”)]
[MaxLength(30,ErrorMessage={0}的长度不能超过{2}个字符。”)]
公共字符串InteriorACFilter{get;set;}
[显示(名称=“差速器油”)]
[MaxLength(30,ErrorMessage={0}的长度不能超过{2}个字符。”)]
公共字符串{get;set;}
[显示(名称=“变速箱油”)]
[MaxLength(30,ErrorMessage={0}的长度不能超过{2}个字符。”)]
公共字符串传输OIL{get;set;}
[显示(Name=“发动机机油”)]
[MaxLength(30,ErrorMessage={0}的长度不能超过{2}个字符。”)]
公共字符串EngineOil{get;set;}
[显示(名称=“轮胎尺寸”)]
[MaxLength(30,ErrorMessage={0}的长度不能超过{2}个字符。”)]
公共字符串TireSize{get;set;}
[显示(Name=“胎压”)]
[MaxLength(30,ErrorMessage={0}的长度不能超过{2}个字符。”)]
公共字符串TirePressure{get;set;}
[显示(Name=“烟雾截止日期”)]
[DisplayFormat(ApplyFormatInEditMode=true,DataFormatString=“{0:d}”)]
公共日期时间?SmogDue{get;set;}
[显示(Name=“注册截止日期”)]
[DisplayFormat(ApplyFormatInEditMode=true,DataFormatString=“{0:d}”)]
公共日期时间?注册到期日{get;set;}
[显示(Name=“保险到期日”)]
[DisplayFo
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; }
    }
}
@model MvcApplication2.Models.LogOnModel

@{
    ViewBag.Title = "Home Page";
}

@using (Html.BeginForm("About", "Home", FormMethod.Post, null))
{
    <input type="submit" name="btn2" value="About" />
    @Html.TextAreaFor(m => m.UserName)
}

@using (Html.BeginForm("Index", "Home", FormMethod.Post, null))
{        
    <input type="submit" name="btn1" value="Index" />
    @Html.TextAreaFor(m => m.UserName)
}
public class HomeController : Controller
{
    [HttpPost]
    public ActionResult Index(LogOnModel a)
    {
        ViewBag.Message = "Welcome to ASP.NET MVC!";


        return View();
    }

    [HttpGet]
    public ActionResult Index()
    {
        return View();
    }

    [HttpPost]
    public ActionResult About(LogOnModel a)
    {

        return View();
    }
}
@using (Html.BeginForm("CreateNewVehiclePart", "Vehicle", FormMethod.Post, null))
{
    @Html.Partial("AddPart", new ShopLog.Models.Part())
    <input type="submit" value="Create New Vehicle Part" />
}
@model ShopLog.Models.Part
@Html.EditorForModel()
@using (Html.BeginForm("AddPartsToVehicle", "Vehicle", FormMethod.Post, null))
(
    @Html.HiddenFor(model=>model.VehicleID)
    @Html.Partial("SelectPart", PartsList)
    <input type="submit" value="Add Parts To Vehicle" />
}
@model IEnumerable<ShopLog.Models.Part>
@Html.DropDownList("part_id", Model.Select(m=>new SelectListItem() { Text = m.Name, Value = m.PartID.ToString() }))