1 Replies - 1548 Views - Last Post: 07 December 2012 - 02:12 PM Rate Topic: -----

#1 Xna4life  Icon User is offline

  • D.I.C Head

Reputation: 0
  • View blog
  • Posts: 78
  • Joined: 21-February 12

display output in different page instead of msg box

Posted 07 December 2012 - 02:07 PM

Hey guys so im attempting to throw a project together to increase my knowledge of MVC3 but I have hit a wall...

So from my HolidaysController inside my index 'view' I have created a hyperlink which will navigate the user to the 'create3' ActionResult

<pre lang="HTML">
@Html.ActionLink("Select 3 Dates", "Create3")</pre>
-------------------
In my create3 page I want the user to enter 3 dates into text boxes and when they click 'create' the user will be returned to the previous HolidaysController/Index page
where the dates will be displayed in order of ascending date

....ATM I have this working up until the user enters 3 dates and clicks 'create'...However I only know how to display a message box displaying the order, it is working I just need help getting the order to be displayed from the index page.

Please see my code:
Code for HolidayController/Index:
--------------

     //submit will go to post
            [HttpPost]
            public ViewResult Index(int HolidayDate)
            {
                var holidays = db.Holidays.Include("Person");
    
                HolidayList model = new HolidayList();
    
                model.currentPersonID = HolidayDate;
                model.PList4DD = db.People.ToList();           
                model.Categories = holidays.Select(x => new SelectListItem
                                                {
                                                    Value = x.Id.ToString(),
                                                    Text = x.Person.Name
                                                }
                                              );
    
    
                int data = HolidayDate;
    
                model.HList4DD = db.Holidays.Where(h => h.PersonId == HolidayDate).ToList();      
    
                return View(model);
    
            }
    
            [HttpGet]
            public ViewResult Index(string sortOrder, int? currentPersonID)
            {
                var holidays = db.Holidays.Include("Person");
     
                HolidayList model = new HolidayList();
     
                //not null
                if (currentPersonID.HasValue)
                {
                    model.currentPersonID = currentPersonID.Value;
    
                }
                else
                {
                    model.currentPersonID = 0;
                }
    
                model.PList4DD = db.People.ToList();
    
                ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "date" : "";
                var dates = from d in db.Holidays
                            where d.PersonId == currentPersonID.Value
                            select d;
         
                switch (sortOrder)
                {
                    case "date":
                        dates = dates.OrderBy(p => p.HolidayDate);
                        break;
                }
    
                model.HList4DD = dates.ToList();
    
                return View(model);
            }


-----------------------
    //View for Index
    
    @*@model IEnumerable<HolidayBookingApp.Models.Holiday>*@
    @model HolidayBookingApp.Models.HolidayList
    @{
        ViewBag.Title = "Index";
    }
    
    <h2>Index</h2>
    
    <p>
        @Html.ActionLink("Create New", "Create")
    </p>
    
    <p>
    @Html.ActionLink("Select 3 Dates", "Create3")
    </p>
    
    <table>
        <tr>
            <th>
                PersonId
            </th>
            <th>
                @*HolidayDate*@
                @Html.ActionLink("HolidayDate", "Index", new { sortOrder = ViewBag.NameSortParm, currentPersonID = Model.currentPersonID })
            </th>
            <th></th>
        </tr>
        <tr>  
        </tr>
    
    @foreach (var item in Model.HList4DD)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.PersonId)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.HolidayDate)
               
            </td>
            <td>
                @Html.ActionLink("Edit", "Edit", new { id = item.Id }) |
                @Html.ActionLink("Details", "Details", new { id = item.Id }) |
                @Html.ActionLink("Delete", "Delete", new { id = item.Id })
            </td>
        </tr>}
        
        <tr>
          <div class="editor-label">
             @*   @Html.LabelFor(model => model.PList4DD, "Person")*@
            </div>
    
            <div class="editor-field">           
                 &lt;form action ="/Holidays/Index" id="some" method="post"> 
    
      @Html.DropDownListFor(model => model.HList4DD.First().HolidayDate, new SelectList(Model.PList4DD, "Id", "Name", Model.currentPersonID), "--select--")    
           &lt;script>
               function updateFormEnabled() 
               {
                   if (verifyAdSettings()) 
                   {
                       $('#sbmt').removeAttr('disabled');
                   }
                   else 
                   {
                       $('#sbmt').attr('disabled', 'disabled');
                   }
               }
    
               function verifyAdSettings() 
               {
                   if ($('#HolidayDate').val() != '') 
                   {
                       return true;
                   }
                   else 
                   {
                       return false;
                   }
               }
    
               $('#HolidayDate').change(updateFormEnabled);
          
               &lt;/script>
               
                 &lt;input type="submit" id= "sbmt" name="ViewHolidaysDD" value="View"/>
                  &lt;/form>
      &lt;script>
          $('#sbmt').attr('disabled', '');
            &lt;/script>
    
            </div>
    
    </table>
    
    <br />
    <br />
    <table>
        <div>
        Judging by your selection the order of dates are: //HERE IS WHERE I WANT TO DISPLAY THE ORDER OF DATES
        </div>
    
    </table>



Just above is where I want to display my dates in order, ascending
--------------------------
    //my create 3 Action result
    
    
     [HttpGet]
            public ActionResult Create3()
            {
                return View();
            }
    
            [HttpPost]
            public ActionResult Create3(string date1, string date2, string date3)
            {
                string FirstDateOrder, SecondDateOrder, ThirdDateOrder;
             
                //date 1 is biggest
                if (date1.Length > date2.Length && date1.Length > date3.Length)
                {
                    //date 2 is 2nd & date 3 is 3rd
                    if (date2.Length > date3.Length)
                    {
                        FirstDateOrder = date1;
                        SecondDateOrder = date2;
                        ThirdDateOrder = date3;
    
                        System.Windows.Forms.MessageBox.Show("Order is 1, 2, 3");
    
                        return RedirectToAction("Index");
                    }
    
                    //date 3 is 2nd & date 2 is 3rd
                    else
                    {
                        FirstDateOrder = date1;
                        SecondDateOrder = date3;
                        ThirdDateOrder = date2;
    
                        System.Windows.Forms.MessageBox.Show("Order is 1, 3, 2");
    
                        return RedirectToAction("Index");
                    }
                  
                }
    
                //date 2 is biggest
                if (date2.Length > date1.Length && date2.Length > date3.Length)
                {
                    //date 1 is 2nd & date 3 is 3rd
                    if (date1.Length > date3.Length)
                    {
                        FirstDateOrder = date2;
                        SecondDateOrder = date1;
                        ThirdDateOrder = date3;
    
                        System.Windows.Forms.MessageBox.Show("Order is 2, 1, 3");
    
                        return RedirectToAction("Index");
                    }
    
                    //date 3 is 2nd & date 1 is 3rd
                    else
                    {
                        FirstDateOrder = date2;
                        SecondDateOrder = date3;
                        ThirdDateOrder = date1;
    
                        System.Windows.Forms.MessageBox.Show("Order is 2, 3, 1");
    
                        return RedirectToAction("Index");
                    }
    
                }
    
                //date 3 is biggest
                if (date3.Length > date1.Length && date3.Length > date2.Length)
                {
                    //date 1 is 2nd & date 2 is 3rd
                    if (date1.Length > date2.Length)
                    {
                        FirstDateOrder = date3;
                        SecondDateOrder = date1;
                        ThirdDateOrder = date2;
    
                        System.Windows.Forms.MessageBox.Show("Order is 3, 1, 2");
    
                        return RedirectToAction("Index");
                    }
    
                    //date 2 is 2nd & date 1 is 3rd
                    else
                    {
                        FirstDateOrder = date3;
                        SecondDateOrder = date2;
                        ThirdDateOrder = date1;
    
                        System.Windows.Forms.MessageBox.Show("Order is 3, 2, 1");
    
                        return RedirectToAction("Index");
                    }
    
                }
    
                
                return RedirectToAction("Index");
            }


-----------------------------
    and my view:
    
    	@model HolidayBookingApp.Models.Dates
    
    @{
        ViewBag.Title = "Create3";
    }
    
    <h2>Create3</h2>
    
    &lt;script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript">&lt;/script>
    &lt;script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript">&lt;/script>
    
    @using (Html.BeginForm()) {
        @Html.ValidationSummary(true)
        <fieldset>
            <legend>Dates</legend>
    
            <div class="editor-label">
                @Html.LabelFor(model => model.date1)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.date1)
                @Html.ValidationMessageFor(model => model.date1)
            </div>
    
            <div class="editor-label">
                @Html.LabelFor(model => model.date2)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.date2)
                @Html.ValidationMessageFor(model => model.date2)
            </div>
    
            <div class="editor-label">
                @Html.LabelFor(model => model.date3)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.date3)
                @Html.ValidationMessageFor(model => model.date3)
            </div>
    
            <p>
                &lt;input type="submit" value="Create" />
            </p>
        </fieldset>
    }
    
    <div>
        @Html.ActionLink("Back to List", "Index")
    </div>"Index")
    
    
    </div>


---------------
Not sure where to go from here something like create a paramter in the Index View which pulls across the order?

Any help would be great thanks guys and sorry about the essay

Is This A Good Question/Topic? 0
  • +

Replies To: display output in different page instead of msg box

#2 macosxnerd101  Icon User is online

  • Self-Trained Economist
  • member icon




Reputation: 10810
  • View blog
  • Posts: 40,294
  • Joined: 27-December 08

Re: display output in different page instead of msg box

Posted 07 December 2012 - 02:12 PM

Please don't open duplicate threads.
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1