2016-09-22 3 views
0

Я попытался несколько различных, чтобы переместить данные из представления в контроллер, чтобы отсортировать новое представление, но я не могу получить данные для передачи. Вот что у меня есть:Передача данных Просмотр-к-контроллеру

Просмотр 1

@model TabCheckout.checkout 
@{ 
    ViewBag.Title = "Select the Letter of Your Last Name"; 
} 
<h3>Select the Letter of Your Last Name</h3> 
@using (Html.BeginForm()) 
{ 
    @Html.AntiForgeryToken() 
    <div class="form-horizontal"> 
     @Html.ValidationSummary(true, "", new { @class = "text-danger" }) 
     <div class="form-group"> 
      <div class="col-md-10"> 
       @{int i = 0; 
        foreach (string letter in ViewBag.Letters) 
        { 
         i++; 
         if (i == 9) 
         { 
          i = 0; 
         @Html.Raw("<br />") 
         } 
         else 
         { 
          <input type='submit' id='@letter' name='selectletter' value='@letter' formaction='Names' />      
          } 
         } 
        } 
      </div> 
     </div> 
    </div> 
} 

Контроллер

public ActionResult Letters(string selectletter) 
     { 
      List<string> letters = new List<string>(); 
      for (int y = 0; y < 26; y++) 
      { 
       char filter = Convert.ToChar(65 + y); 
       string letter = filter.ToString(); 
       letters.Add(letter); 
      } 
      ViewBag.Letters = letters; 
      GlobalVariable.selectletter = Convert.ToString(selectletter); 
      return View(GlobalVariable.selectletter); 
     } 
     public ActionResult Names() 
     { 
      //  var namesrt = from s in db.users 
      //     select s; 
      //  namesrt = namesrt.Where(s => s.LastName.StartsWith(GlobalVariable.letter)); 
      // ViewBag.UserID = new SelectList(namesrt, "UserID", "FullName", null); 
      ViewBag.UserID = new SelectList(db.users, "UserID", "FullName", null); 
      return View(); 
     } 

View 2

@model TabCheckout.checkout 
@{ 
    ViewBag.Title = "Select Your Name"; 
} 
<h3>Select Your Name - @GlobalVariable.selectletter</h3> 
@using (Html.BeginForm()) 
{ 
    @Html.AntiForgeryToken() 
    <div class="form-horizontal"> 
     @Html.ValidationSummary(true, "", new { @class = "text-danger" }) 
     <div class="form-group"> 
      <div class="col-md-10"> 
       @{int i = 0; 
        foreach (var item in ViewBag.UserID as SelectList) 
        { 
         i++; 
         if (i == 9) 
         { 
          i = 0; 
          @Html.Raw("<br />") 
         } 
         else 
         { 
          <input type="submit" name="@item.Text" value="@item.Text" formaction="Vehicles"> 
         } 
        } 
       } 
      </div> 
     </div> 
    </div> 
} 

Я ж угорь, как и большинство проблем, связано с моей формулировкой Контролера. Я попытался использовать имя запроса для строки, FormCollection и текущего беспорядка.

Благодарим вас за помощь и ваше понимание моего ограниченного уровня квалификации.

Вот модель для полного раскрытия:

Модель

namespace TabCheckout 
{ 
    using System; 
    using System.Collections.Generic; 
    using System.ComponentModel.DataAnnotations; 
    using System.ComponentModel.DataAnnotations.Schema; 
    using System.Data.Entity.Spatial; 

    [Table("NewsData_Tab.checkout")] 
    public partial class checkout 
    { 
     public int CheckoutID { get; set; } 
     [Required] 
     public int User { get; set; } 
     [ForeignKey("User")] 
     public virtual user users { get; set; } 
     [Required] 
     public int Vehicle { get; set; } 
     [ForeignKey("Vehicle")] 
     public virtual vehicle vehicles { get; set; } 
     [Required] 
     public int Equipment { get; set; } 
     public DateTime TimeOut { get; set; } 
     public DateTime TimeIn { get; set; } 
     public checkout() 
     { 
      TimeOut = DateTime.Now; 
     } 
    } 
    public static class GlobalVariable 
    { 
     public static string selectletter { get; set; } 
    } 
} 
+0

Обращаем внимание, что тег модели-представления-контроллера предназначен для вопросов о шаблоне. Существует определенный тег для реализации ASP.NET-MVC. –

ответ

0
public ActionResult Names(FormCollection form) 
    { 

     var letter = form["selectletter"]; 

     ViewBag.UserID = new SelectList(db.users, "UserID", "FullName", null); 
     return View(); 
    } 

Это работает для меня!

+0

Спасибо Гиэрме! Я помещал FormCollection в «Письма» вместо имен в контроллере. – hwy

Смежные вопросы