2017-02-10 2 views
0

Я пытаюсь передать нажал кнопку на контроллере, когда пользователь нажал кнопку Next с точки зрения/FregihtTool.cshtmlКак передать значение кнопки Clicked контроллеру с помощью ASP.NET MVC?

@model ThanksTrucking.Models.Shipping 


<h2>FreightTool</h2> 


@using (Html.BeginForm("FreightTool", "Shipping")) 

{ 
    @Html.AntiForgeryToken() 

<div class="form-horizontal"> 
    <h4>Calculator</h4> 
    <hr /> 
    @Html.ValidationSummary(true, "", new { @class = "text-danger" }) 

    <div row> 
     <div class="col-md-12"> 
      <button class="col-md-3" type="button" id="PrintedMaterials" value="1" class="btn btn-secondary " ng-click="levelOU()">Printed Materials </button> 
      <button class="col-md-3" type="button" id="Machinery" value="2" class="btn btn-secondary " ng-click="levelCD()">Machinery</button> 
      <button class="col-md-3" type="button" id="PaperGoods" value="3" class="btn btn-secondary " ng-click="levelD()">Paper Goods </button> 
      <button class="col-md-3" type="button" id="MetalWood" value="4" class="btn btn-secondary " ng-click="levelF()">Metal & Wood Materials </button> 
     </div> 
    </div> 

    <div class="form-group"> 
     <div class="col-md-12 text-right"> 
      <input type="submit" value="Next" class="btn btn-success" /> 
     </div> 
    </div> 
</div> 

}

Теперь я FreightController выглядит следующим образом:

// GET: Shipping/FreightTool 
    public ActionResult FreightTool() 
    { 
     return View(); 
    } 

    // Post: Shipping/FreightTool 
    [HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult FreightTool(int categoryNum) 
    { 
     int FreightClass = 0; 
     switch (categoryNum) 
     { 
      case 1: 
       FreightClass = 50; 
       break; 
      case 2: 
       FreightClass = 60; 
       break; 
      case 3: 
       FreightClass = 70; 
       break; 
      case 4: 
       FreightClass = 80; 
       break; 
      default: 
       FreightClass = 0; 
       break; 
     } 
     return RedirectToAction("Create", "Shipping", FreightClass); 
    } 

Я хочу передать CategoryNum с точки зрения, и контроллер обрабатывает его и сообщает, что это FreightClass.

+0

Предполагая, что я понял - вы, вероятно, лучше с радио или чекбокс (в зависимости от того, что вам нужно). Если вам нужно придерживаться 'кнопки', вы используете« Угловое », чтобы было так, как вы« сохраняете »это значение (и будете обрабатывать отправку аналогично на стороне клиента/Угловая). Hth. – EdSF

ответ

0

Имя ваши кнопки, например .:

<button class="col-md-3" type="button" id="PrintedMaterials" name="categoryNum" value="1" class="btn btn-secondary " ng-click="levelOU()">Printed Materials </button> 
+0

Нет .. это не работает. Я подаю кнопку внизу вправо? '' –

+0

Нет. Именно так, как я показал в своем ответе: каждая из ваших кнопок со значениями, соответствующими вашему оператор switch должен иметь это имя. Это на самом деле означает, что окончательная кнопка отправки не имеет значения. Единственный способ опубликовать значение с помощью кнопки - это отправить ее также. Если вы не хотите немедленно отправлять, когда пользователь нажимает один из этих параметров, вам нужно использовать что-то вроде радиоуправления. –

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