Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 刷新视图页面_Asp.net Mvc_Asp.net Mvc 3_View_Controller - Fatal编程技术网

Asp.net mvc 刷新视图页面

Asp.net mvc 刷新视图页面,asp.net-mvc,asp.net-mvc-3,view,controller,Asp.net Mvc,Asp.net Mvc 3,View,Controller,在我的页面中,我显示了一个订单及其产品和此页面中每个产品的价格 订购时,用户可以更改每个产品的价格 更改价格的功能运行良好,但我的问题是用户必须刷新页面才能看到价格更新 是否有任何方法可以刷新视图,同时更新价格 更新价格的功能: public ActionResult UPPDATEPrise(int VaraId, int pris, int kundId) { int _Orderid = GetLastOrderId(); SqlConnection conn = new

在我的页面中,我显示了一个订单及其产品和此页面中每个产品的价格 订购时,用户可以更改每个产品的价格

更改价格的功能运行良好,但我的问题是用户必须刷新页面才能看到价格更新

是否有任何方法可以刷新视图,同时更新价格

更新价格的功能:

public ActionResult UPPDATEPrise(int VaraId, int pris, int kundId)
{
    int _Orderid = GetLastOrderId();

    SqlConnection conn = new SqlConnection("Data Source=ENTERPRISE-PC;Initial Catalog=Fakturor;Integrated Security=True");
    String command = "UPDATE [Fakturor].[dbo].[Varor]  SET pris="+pris+" WHERE [id]="+VaraId+"";
    SqlCommand cmd = new SqlCommand(command,conn);
    conn.Open();
    cmd.ExecuteNonQuery();

    return RedirectToAction("UdateOrderDetails", new { kundId = kundId, OrderId = _Orderid });     
}
下面是我返回视图的操作:

public ActionResult UdateOrderDetails(int kundId, int OrderId)
{
    //Orders procuts
    DataClasses1DataContext db = new DataClasses1DataContext();
    var t1 = (from p in db.Varors
                  join
                  op in db.OrderVarors on p.id equals op.IdVara
                  where op.IdOrder == OrderId  
                  select p).ToList();

    ViewBag.OrderItems = t1;
    //customer details
    ViewBag.id= kundId;

    //Order id
    ViewBag.OrderId = OrderId;
    // All products 
    ViewBag.varor=HamtarVaror();

    return View("Create");
}

听起来浏览器正在直接缓存页面。不确定这是否可行,但作为如何防止缓存的示例,这不是最佳实现,仅举一个示例:

设置在tempdata中更新内容的标志

public ActionResult UPPDATEPrise(int VaraId, int pris, int kundId)
{
  // ALL YOUR CURRENT CODE....

  TempData["IsCacheDisabled"] = true;

  return RedirectToAction("UdateOrderDetails", 
    new { kundId = kundId, OrderId = _Orderid });
}
检查并更新缓存值:

public ActionResult UdateOrderDetails(int kundId, int OrderId)
{
  // ALL YOUR CURRENT CODE....

  if (TempData["IsCacheDisabled"] != null
      && (bool)TempData["IsCacheDisabled"])
  {
    var cache = HttpContext.Response.Cache;
    cache.SetExpires(DateTime.UtcNow.AddDays(-1));
    cache.SetValidUntilExpires(false);
    cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
    cache.SetCacheability(HttpCacheability.NoCache);
    cache.SetNoStore();
  }

  return View("Create");
}

我没有看到任何更新产品价格的代码。编辑,这里我的价格更新功能是一个旁注,您可能应该考虑使用而不是查看包。无论数据类型如何,您都应该明确考虑使用。1-名称“filterContext”在当前上下文中不存在2-运算符“&&”不能应用于根据您的注释更新的“bool”和“object”类型的操作数。不,这不是答案,我仍然需要手动刷新页面来处理更改,就像浏览器缓存问题一样。尝试过chrome和explorer后,问题仍然存在