【问题标题】:How to return null values for editing in asp.net mvc?如何返回空值以在 asp.net mvc 中进行编辑?
【发布时间】:2016-04-18 12:17:22
【问题描述】:

我知道这对于 MVC 专业人士来说可能是一个愚蠢的问题,但在过去的几个小时里它让我很头疼,所以请接受我的借口! 我有一个名为DeliveryDetails 的类,如下所示:

Public Class DeliveryDetails 
{
   Prop1;
   Prop2;
   Prop3;
   PropX;
}

概念是我希望登录的用户编辑 DeliveryDetails 类数据作为结帐过程,即使后端数据库表中没有数据。那可能吗?还是我应该先保存 DeilveryDetails,然后在第二次购买时在编辑模式下调出 DeliveryDetails?

【问题讨论】:

  • prop1、prop2、prop3是什么类型的?它们是列表还是字符串?
  • 不,它们是字符串和整数。如果它是一个列表,它会有什么不同? @巴拉特
  • 只需创建一个DeliveryDetails 的新实例并将其传递给视图。
  • 如果有数据允许他们编辑,否则你允许他们添加交货细节
  • @StephenMuecke 一直需要你的帮助,一个简单的例子就足够了!谢谢

标签: c# asp.net-mvc e-commerce checkout


【解决方案1】:

根据您的输入,我的头顶:

您可以在 Session_Start 事件上创建 DeliveryDetails 并将其引用存储到 Session 中(如果需要,您还可以从数据库或其他来源加载它)。

protected void Session_Start(object sender, EventArgs e)
{
    Session["DeliveryDetails"] = new DeliveryDetails();
}

然后,当您需要 DeliveryDetails 实例时,您只需像这样从会话中提取它:

var deliveryDetails = (DeliveryDetails)Session["DeliveryDetails"];
// deliveryDetails.Prop1 = ...
// deliveryDetails.Prop2 = ...
// etc.

但是在这种情况下,您必须小心在适当的时候在 Session 中初始化/重置 DeliveryDetails 对象。

这样您可以决定何时将数据写入数据库(如果需要),但用户将始终通过 Session 获得其 DeliveryDetails。当然,如果你不使用 Sessions,你可能无法做到这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多