在MVC中使用相同的视图获取,发布和更新请求

时间:2017-08-17 06:26:55

标签: c# asp.net-mvc views

我正在用C#开发一个mvc应用程序,并且面对错误对象引用没有设置为对象的实例,数据流如下: -

  1. 对于GET请求,它返回一个视图并从用户输入2个输入,并向控制器发送POST请求以更新下面的2个数据字段。
  2. 返回视图时,使用TempData
  3. 在同一视图中更新2个字段

    查看:(名称=专家用户)

     // 2 User input fields
     <label>R 12.5 bend length:*</label>
     <input type="number" step="any" min="1" name="htlen" class="form-control fcus"/>
       @Html.Label("Select Diameter: *")
       <select name="diam" class="form-control fcus">
            <option value="6.5">6.5</option>
            <option value="8">8</option>
            <option value="8.5">8.5</option>
       </select>
     // 2 display fields to Update from controller
    @{ var pno = TempData["partDetail"] as PartNo; }
    @Html.Label("Total Watts :")@pno.htvotls   //<--Showing Error here for GET request
    @Html.Label("Part No :") @pno.htvar   //<-- Showing Error
    
      

    上面的视图有4个字段,2个字段用于用户输入,2个字段用于更新数据

    控制器:

     PartNo PartDetails = pno.PartNoCalc(htlen,diam);
     TempData["partDetail"] = PartDetails;
     return View("ExpertUser", "partDetail");
    
      

    PartNoCalc(htlen,diam)是获取细节并将对象存储在Tempdata中的函数

         

    问题是对于GET请求,当调用view时,调用TempData的pno为null

    我没有使用强类型视图,因为它无法与Angular集成以进行UI渲染。 谢谢。

1 个答案:

答案 0 :(得分:0)

试试这个,希望它对你有所帮助

@{ var pno = TempData["partDetail"] as PartNo; }
@if (pno != null)
{
    @Html.Label("Total Watts :")@pno.htvotls
    @Html.Label("Part No :") @pno.htvar
}