在发送数据后将数据保存在表单中

时间:2012-07-25 07:56:00

标签: c# asp.net razor

我有一个表格可以输入数据,然后对其进行计算并给出答案。我想要做的是让它将数据保存在表单中,以便您可以快速重新发布,这样您就不必更改所有数据。但我不能继续提出它不存在的错误,我认为这是正确的,直到表格发布!

@{
  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 个答案:

答案 0 :(得分:1)

试试这个

var age = 0;

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

    }

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

但通常最好使用模型来保存您的值,然后在您的控制器中将这些值再次传递回您的表单

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

希望我帮助

答案 3 :(得分:0)

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

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

使用Jquery POST.e.g提交表单。如下所示

   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");}
        });

   }