在按钮上添加另一个表单,点击

时间:2015-11-20 21:29:38

标签: c# jquery ajax asp.net-mvc razor

我有一个包含表单的创建视图。我想给用户两个选项,保存只保存表单并重定向到索引或添加更多票证,这将在视图中显示另一个相同的表单。我不确定从哪里开始,我应该保存第一张票据细节然后刷新页面吗?或者有没有办法隐藏第二个表单,直到选择添加更多票据然后立即保存所有表格?我知道这很模糊,但我不知道从哪里开始,但任何建议都会很棒

这是我的模特;

 public class Ticket
{
   public int TicketID { get; set; }

   [Required]
   [ForeignKey("Event")]
   //foreign key
    public int EventID { get; set; }

   [Required]
   public string Description { get; set; }

   [Required]
   public float Price { get; set; }

    //navigation property
    public virtual Event Event { get; set; }

    //navigation property
    public ICollection<OrderDetails> OrderDetails { get; set; }
}

到目前为止,这是我的观点;

@model GeogSocSite.Models.Ticket

@{
ViewBag.Title = "Create";
}

<h2>Create</h2>

@using (Html.BeginForm()) 
{
@Html.AntiForgeryToken()

<div class="form-horizontal">
    <h4>Ticket</h4>
    <hr />
    @Html.HiddenFor(model => model.EventID)

    <div class="form-group">
        @Html.LabelFor(model => model.Description, htmlAttributes: new {   @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.Description, new { htmlAttributes  = new { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.Description, "", new {  @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        @Html.LabelFor(model => model.Price, htmlAttributes: new { @class =  "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.Price, new { htmlAttributes = new  { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.Price, "", new { @class = "text-danger" })
         </div>
    </div>

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Create" class="btn btn-default" />
        </div>
    </div>
</div>

}

<div>
@Html.ActionLink("Back to List", "Index")
</div>

1 个答案:

答案 0 :(得分:0)

我在这种情况下的选择是使用适当的视图模型(如@StephenMuecke)sugested)并使用Bootsrtaap模态(here)来显示隐藏的字段。