1

範囲検証を使用しましたが、これは機能していません。モデル、コントローラー、ビューコードを追加しています。助けてください(このコードでのみ関連フィールドのみを追加しました)。

モデルは:

public class TicketDetailModel : TicketModelBase
    {
        public WorkOnTicketCreateModel WorkOnTicketCreateModel { get; set; }
    }
public class TicketModelBase
    {
        [Required]
        [Range(1, int.MaxValue, ErrorMessage = "Please enter a value bigger than {0}")]
        public int EstimatedTime { get; set; }
        public virtual List<WorkOnTicket> WorkOnTickets { get; set; }
    }
public class WorkOnTicketCreateModel : WorkOnTicketModelBase
    {
        [Required]
        [Display(Name = "AssignedToUser")]
        public int AssignedToUserId { get; set; }
        public IEnumerable<SelectListItem> AssignedUser { get; set; }

        [Required]
        [Display(Name = "Ticket Status")]
        public int TicketStatusId { get; set; }

        public TicketStatus TicketStatusVal { get; set; }

        public IEnumerable<SelectListItem> TicketStatus { get; set; }

    } 
public class WorkOnTicketModelBase
    {
        public int Id { get; set; }

        [Required]
        public int EstimateHours { get; set; }

        [Required]
        [Range(1, int.MaxValue, ErrorMessage = "Please enter a value bigger than {0}")]
        public int WorkedHours { get; set; }

    }
Contoller:
        [HttpPost]
        [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult Details(TicketDetailModel model, IEnumerable<HttpPostedFileBase> file)
        {
            using (ITransaction transaction = this.nhSession.BeginTransaction())
            {

                var ticketObj = this.nhSession.QueryOver<Ticket>().Where(t => t.Id == model.Id).SingleOrDefault();
                var workOnTicket = new WorkOnTicket();

             workOnTicket.Ticket = ticketObj;
                    workOnTicket.WorkedHours = model.WorkOnTicketCreateModel.WorkedHours;
                    workOnTicket.EstimateHours = model.WorkOnTicketCreateModel.EstimateHours;               
                ticketObj.WorkOnTickets.Add(workOnTicket);
                this.nhSession.Save(ticketObj);
                transaction.Commit();
            }
            return RedirectToAction("Details", new { id = model.Id, milestoneId = model.Milestone.Id, projectId = model.Project.Id });
        }

意見:-

@model AnkTech.TicketManagement.Web.Models.Ticket.TicketDetailModel
@using (Html.BeginForm("Details", "Ticket", FormMethod.Post, new { enctype = "multipart/form-data" }))
{   
@Html.ValidationSummary(true)
 @Html.TextBoxFor(model => model.WorkOnTicketCreateModel.EstimateHours, new { @id = "work_remaining", @class = "s-mini", size = "2" })
Worked hours:                                                                            @Html.TextBoxFor(model => model.WorkOnTicketCreateModel.WorkedHours, new { @id = "worked_hours", @class = "s-mini", size = "2" })
<input type="submit" value="Submit" tabindex="2" name="commit" id="submit-comment"
 class="gray-btn">
}

残りのフィールドをすべて削除しました。関連するフィールドのみを追加しました。助けてください。

4

1 に答える 1