2017-08-17 43 views
0
GET,POST和更新请求相同的观点

我开发在C#中的MVC应用程序和面向错误对象引用不设置到对象的情况下,数据流程如下: -使用在MVC

  1. 对于GET请求,它返回一个视图并从用户和POST请求获取2个输入,以便控制器更新以下2个数据字段。
  2. 当返回的视图,2个域在同一视图中使用的TempData
  3. 更新

视图:(名称= ExpertUser)

// 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,直径)为函数得到的信息,并存储所述对象中的TempData

的问题是,对于GET请求时视图被称为PNO调用的TempData是null

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

+0

务必检查的TempData [“someValue中”]有使用它之前的任何值,也尝试使用ViewBag或ViewData的是TempData的是短暂的,可能产生意想不到的结果,如在你的情况下 – mahlatse

+0

尝试使用一个viewbag,看看问题是否消失。由于Tempdata可能会在请求期间丢失其数据,当您说您遇到同样的问题时,它仍然是未设置的参考?或者是tempdata null的值? – mahlatse

+0

感谢您的更新,我已经使用ViewData和sert值为null,并添加了几行,但同样的错误。 (ViewData [“partDetail”] == null || pno.Equals(null)) {pno = null; pno.htvotls = Convert.ToDecimal(null); } } @ pno.htvotls – NoobOwl

回答

0

尝试这一点,希望这将有助于你

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