2016-05-06 10 views
0

私は、ユーザーがhtmlチェックボックスをチェックしたかどうかによって、2つの異なるデータの1つをデータベースに送信しようとしています。私は MVCなしでC#を使用してチェックボックスを評価する方法を理解できません。C#を使用してhtmlチェックボックスをどのように評価しますか?

@{ 
    var Category = ""; 
    var AltCategory = ""; 

    var db = Database.Open("Inventory"); 

    var Checkbox_value =(Request["altCategory_checkbox"]=="on") ? true : false; 

    if(IsPost && Validation.IsValid()){ 
     Category = Request.Form["ListCategory"]; 
     AltCategory = Request.Form["AltCategory"]; 

     if(Checkbox_value = true){ 
      Funcs.AddNewProduct(Category); 
     } 
     else{ 
      Funcs.AddNewProduct(AltCategory); 
     } 
     Response.Redirect("~/Members/Products");} 
} 

をし、HTML::ここで私は簡略化した形でしようとしてきたものだ

<form method="post"> 
    <fieldset> 
     <p><label for="Category">Category:</label> 
     <input type="text" name="Category" value="@Request.Form["Category"]" /> 
     </p> 

    <input type="checkbox" name="altCategory_checkbox" id="altCategory_checkbox"> 
    <label for="altCategory_checkbox">Add new category?</label> 

     <p><label for="AltCategory">New category:</label> 
     <input type="text" name="New category" value="@Request.Form["AltCategory"]" /> 
     </p> 

     <p><input type="submit" name="buttonSubmit" value="Add product" /></p> 

    </fieldset> 
    </form> 

すべてのヘルプは大歓迎され、これは些細な問題である場合、私はお詫び申し上げます。 HTMLで

@{ 
    var Category = ""; 
    var AltCategory = ""; 

    var db = Database.Open("Inventory"); 

    if(IsPost){ 
     Category = Request.Form["ListCategory"]; 
     AltCategory = Request.Form["AltCategory"]; 
     bool CategoryCheckbox = Request["CategoryCheckbox"].AsBool(); 

     if(CategoryCheckbox){ 
      Funcs.AddNewProduct(Category); 
     } 
     else{ 
      Funcs.AddNewProduct(AltCategory); 
     } 
     Response.Redirect("~/Members/Products");} 
} 

:次は、ソリューションになってしまっ

+1

を使用してboolとしてチェックボックスを読み取ることで、リクエストを扱っていると、 Razorページのdb?それは本当に悪い考えです。コントローラにコードを配置したくないのですか? –

+0

しかし、もしそれが 'Request [" altCategory_checkbox "] ==" true "'ではありませんか? –

+0

@teovankot私はWeb開発の初心者ですが、理解しているように、コントローラはMVCの一部です。私はMVCを使用していません。そうでない場合は教えてください。 'Request [" altCategory_checkbox "] ==" true "'に関するあなたの提案を試してみたところ、常にfalseと評価されているようです。以前のコードでは改善されていませんでした。なぜなら、以前は何の評価もされていなかったからです。 –

答えて

0

<form method="post"> 
    <fieldset> 
     <p><label for="Category">Category:</label> 
     <input type="text" name="Category" value="@Request.Form["Category"]" /> 
     </p> 

    @Html.CheckBox("CategoryCheckbox", new { value = "true" }) 
    <label for="CategoryCheckbox">Add new category?</label> 

     <p><label for="AltCategory">New category:</label> 
     <input type="text" name="New category" value="@Request.Form["AltCategory"]" /> 
     </p> 

     <p><input type="submit" name="buttonSubmit" value="Add product" /></p> 

    </fieldset> 
    </form> 

トリックはbool CategoryCheckbox = Request["CategoryCheckbox"].AsBool();

関連する問題