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

我并不真正理解这个问题,因为默认情况是网页保持其视图状态,因此回发后数据仍然相同,但这是解决方案:

你可以简单地使用 ASP 控件,因为它保持它的视图状态,或者你可以给它们的每个控件它在 C# 中的值,你可以将它的值分配给每个控件

希望我有所帮助

于 2012-07-25T08:06:03.437 回答
0

启用页面和控件的 ViewState 并使用 aspx 控件,而不是 HTML。

于 2012-07-25T08:04:37.433 回答
0

由于您使用的是 ASP.NET MVC Razor,因此您可以做的是,不要使用 提交表单<input type="submit" value="Calculate" />,而是将其更改为一个简单的按钮,例如

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

并使用 Jquery POST.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 回答