2016-10-27 4 views
1

NopCommerce v3.8のカスタムプラグインに次のコードがあります。Nop Commerce RenderBootstrapTabHeader Submit

@using Nop.Web.Framework; 
@using Nop.Core; 
@using System.Linq; 
@using Nop.Web.Framework.UI; 
@using Nop.Web.Framework; 
@using Nop.Core.Infrastructure; 
@model Nop.Plugin.Widgets.PromoSlider.Domain.PromoSliderRecord 

@{ Layout = "_AdminLayout.cshtml"; } 

<div class="content"> 
<div class="form-horizontal"> 
    <div id="slider-edit" class="nav-tabs-custom"> 
     <ul class="nav nav-tabs"> 
      @Html.RenderBootstrapTabHeader("Slider", @T("Slider"), true) 
      @Html.RenderBootstrapTabHeader("Images", @T("Images")) 
     </ul> 
     <div class="tab-content"> 
      @Html.RenderBootstrapTabContent("Slider", Sliders(), true) 
      @Html.RenderBootstrapTabContent("Images", Images(), false) 
     </div> 
    </div> 
</div> 
</div> 


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

    <div class="panel-group"> 
     <div class="panel panel-default"> 
      <div class="panel-body"> 
       <div> 
        <div class="adminData">@Html.HiddenFor(m => m.PromoSliderId)</div> 
       </div> 
       <div class="form-group"> 
        <div class="col-md-2">@Html.NopLabelFor(m => m.PromoSliderName)</div> 
        <div class="col-md-9"> 
         @Html.EditorFor(m => m.PromoSliderName) 
         @Html.ValidationMessageFor(m => m.PromoSliderName) 
        </div> 
       </div> 
       <div class="form-group"> 
        <div class="col-md-2">@Html.NopLabelFor(m => m.IsActive) </div> 
        <div class="col-md-9"> 
         @Html.EditorFor(m => m.IsActive) 
         @Html.ValidationMessageFor(m => m.IsActive) 
        </div> 
       </div> 
       <div class="form-group"> 
        <div class="col-md-2">@Html.NopLabelFor(m => m.Interval)</div> 
        <div class="col-md-9"> 
         @Html.EditorFor(m => m.Interval) 
         @Html.ValidationMessageFor(m => m.Interval) 
        </div> 
       </div> 
       <div class="form-group"> 
        <div class="col-md-2">@Html.NopLabelFor(m => m.Wrap)</div> 
        <div class="col-md-9"> 
         @Html.EditorFor(m => m.Wrap) 
         @Html.ValidationMessageFor(m => m.Wrap) 
        </div> 
       </div> 
       <div class="form-group"> 
        <div class="col-md-2">@Html.NopLabelFor(m => m.PauseOnHover)</div> 
        <div class="col-md-9"> 
         @Html.EditorFor(m => m.PauseOnHover) 
         @Html.ValidationMessageFor(m => m.PauseOnHover) 
        </div> 
       </div> 
       <div class="form-group"> 
        <div class="col-md-2">@Html.NopLabelFor(m => m.ZoneName)</div> 
        <div class="col-md-9"> 
         @Html.DropDownListFor(m => m.ZoneName, new SelectList(
        new List<string>() { 
         "producdivetails_top", 
         "categorydetails_after_breadcrumb", 
         "home_page_top" 
        })) 
         @Html.ValidationMessageFor(m => m.ZoneName) 
        </div> 

       </div> 
       <div class="pull-right"> 
        <button type="submit" name="save" class="btn bg-blue"> 
         <i class="fa fa-floppy-o"></i> 
         @T("DERP") 
        </button> 
       </div> 
      </div> 
     </div> 
    </div>      
} 

} 

@helper Images() 
{ 
if (Model.PromoSliderId > 0) 
{ 
    @Html.Action("ManagePromoImages", new { PromoSliderId = Model.PromoSliderId }) 
} 
else 
{ 
    <p>Please create and save a slider first.</p> 
} 

} 

送信ボタンが一切起動しないため、生成されたソースを見て理由を見つけることができます。

<div class="content"> 
<div class="form-horizontal"> 
    <div id="slider-edit" class="nav-tabs-custom"> 
     <ul class="nav nav-tabs"> 
      <li class="active"><a data-tab-name="Slider" data-toggle="tab" href="#Slider">slider</a></li> 
      <li class=""><a data-tab-name="Images" data-toggle="tab" href="#Images">images</a></li> 
     </ul> 
     <div class="tab-content"> 
      <form action="/PromoSlider/CreateUpdatePromoSlider" method="post"></form><div class="tab-pane active" id="Slider"><input name="__RequestVerificationToken" type="hidden" value="uH2GbG4t6n0dDyBs79d6GQZTorBRpgWFCFithR77gSkAUYvPkMecNIwYtkEGyayid97gmdQp-isUUkMq1M7qSpeYOzwLGW-9WtUIxggkBd-0gATnIt5CvfEtUpjqwnl90" />  <div class="panel-group"> 
     <div class="panel panel-default"> 
      <div class="panel-body"> 
       <div>.... 

フォームした後、送信ボタンを含むすべての@helperのhtmlコードを、それはフォームを作成するdecidedsいくつかの狂った理由を参照して閉じて入力することができたよう。

私の質問は、あなたはまだ本当にしたいHtml.RenderBootstrapTabHeader

@

の内部Html.BeginForm

@

を使用することができますこれは3.8のおかげで動作します。

答えて

2

ここで提供できる唯一の方法は、タグを使用して、@helper {}のフォームを作成するための必須パラメータです。 我々はこの問題を調査するために、適切な問題を作成しました:それは

を働かせることができるの両方におけるので https://github.com/nopSolutions/nopCommerce/issues/1840

+0

ああ、それは3.8の問題です、良い、私は私の心を失っていたと思った。 – lemunk

0

enter image description hereあなたが先頭に宣言するのタブで@Html.BeginForm を追加することができますが、このスクリーンショット

からアイデアを得ることができます
+3

**画像としてコードを追加するのではなく、マークダウンが提供するコードセクションを使用してください。 –

+0

ええ、確かに@PaulKertscher Thnx –

関連する問題