0

私はあなたがデータを入力するフォームを持っています、そしてそれはそれに対して計算を実行して答えを与えます。私がやりたいのは、データをフォームに保持して、すべてのデータを変更する必要がないようにすばやく再投稿できるようにすることです。しかし、私はそれが存在しないというエラーを思い付くことができません。それはフォームが投稿されるまで正しいと思います!

@{
  var total = 0m;
  var totalMessage = "";


    if (IsPost)
    {
        var age = Request["frmage"].AsInt(0);
        var weight = Request["frmweight"].AsDecimal();
        var SerCre = Request["frmSerCre"].AsDecimal();
        var sexfactor = Request["frmGender"]== "M" ? 1.23m : 1.04m;

        total =Convert.ToDecimal ((((140 - age)*weight)* sexfactor )/SerCre ) ;

        totalMessage =  total.ToString("0.00") + "(ml/min) ";
    }


}
<div class="memberRegistration">
<form method="post">

<p>
    <label class="formLabel">Age:</label> in years
    <input class="formTextField" type="text" name="frmAge" size="3" value="@age"/>
</p>
<p>
    <label class="formLabel">Weight:</label> in Kg (1st = 6.35kg)
    <input class="formTextField" type="text" name="frmWeight" value="@weight"/>
</p>
<p>
    <label class="formLabel">Serum Creatinine:</label> in μmol/L
    <input class="formTextField" type="text" name="frmSerCre" value="@SerCre"/>

</p>
<p>

<label class="fieldLabel">Gender:</label>
    <select name="frmGender" id="select" value="@sexfactor">
        <option value="M">Male</option>
        <option value="F">Female</option>
    </select>

</p>
<p><input type="submit" value="Calculate" /></p>
</form>
<p>Calculated creatinine clearance <b>@totalMessage</b></p>
</div>
4

4 に答える 4

1

これを試して

var age = 0;

    if (IsPost)
    {
        age = Request["frmage"].AsInt(0);

    }

<input class="formTextField" type="text" name="frmAge" size="3" value="@age"/>

ただし、通常はモデルを使用して値を保持し、コントローラーでそれらの値をフォームに再度渡す方が適切です。

于 2012-07-25T08:01:39.840 に答える
0

ページとコントロールのViewStateを有効にし、HTMLではなくaspxコントロールも使用します。

于 2012-07-25T08:04:37.433 に答える
0

デフォルトでは、Webページは表示状態を維持しているため、ポストバック後もデータは同じままですが、解決策は次のとおりです。

ASPコントロールはビューステートを維持するため、単純に使用できます。または、各コントロールにC#での値を指定したり、各コントロールに値を割り当てたりすることができます。

私が助けてくれることを願っています

于 2012-07-25T08:06:03.437 に答える
0

ASP.NET MVC Razorを使用しているため、を使用してフォームを送信せずに、次<input type="submit" value="Calculate" />のような単純なボタンに変更することができます。

      <input type="button" value="Calculate" onclick="javascript:Submitform();" />

以下のようにJqueryPOST.egを使用してフォームを送信します

   function SubmitForm(){
      var formData = $("form").serialize() ;
      var submitUrl = 'yourURL' ;
      $.ajax({
           type : 'POST' , 
           url : submitUrl , 
           data : formData , 
           success : function (data ){ alert ("Request successful") ;}
           error : function (jqXHR, status , errorthrown) { alert ("error Occured");}
        });

   } 
于 2012-07-25T08:10:44.450 に答える