由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - MVC Web: How to transfer a dictionary from viewer to cont
相关主题
求最佳解法包子,能否在Python 里生成一个csv 文件,并将它放在一个server 的directory 下?
VNC for multiple users ( >= 2) (转载)感觉写Scala就是一种享受
Question about OleDb...C# 菜鸟问题 -- ObjectDisposedException
Scripting language的几个问题python数据处理的一个问题
why vb code faster than csharp???静观java,scala,c#,js牛人抢答
about layout of List in C#Pandas DataFrame: how to plot candlestick with datetime xlabels?
战为止戈,单线程 50M TPSC#, recruiter发过来的面试题 (转载)
python pandas一个问题超级新手, 求助 python pandas 和pandas_DataReader
相关话题的讨论汇总
话题: public话题: set话题: dictionary
进入Programming版参与讨论
1 (共1页)
f********f
发帖数: 475
1
下面的code在viewer端,是执行ExportReport controller里的exportPDFReport
function,同时将reportInputData传递过去:

@Html.ActionImage("exportPDFReport", "ExportReport", reportInputData, "~/
Content/images/pdf_icon.png", Resources.Global.ExportPDF, Resources.Global.
ExportPDF)

在model端,reportInputData的类型定义是这样的:
public class ReportInputDataModels
{
public DateTime startDate { get; set; }
public DateTime endDate { get; set; }
public string reportName { get; set; }
public int? reportID { get; set; }
public Dictionary currencySummaryData {
get; set; }
public ReportInputDataModels()
{
currencySummaryData = new Dictionary >();
}
}
Controller端,
public void exportPDFReport(ReportInputDataModels reportData)
{
。。。。
}
我的问题是:在controller端,reportData里的currencySummaryData总是空而其他的
变量没有问题,为什么?
调试的时候viewer端reportInputData里的currencySummaryData是有值的。
reportInputData里的currencySummaryData是从viewer端的一个local变量copy过来的
。是不是dictionary类型的copy有啥trick?
请大佬指教!谢谢!
a*f
发帖数: 1790
2
为空是指null还是empty? 如果你能改代码,把currencySummaryData的setter改成
private或者赋一个dummy值进去再测试,运行出错或者变成了dummy值,说明其他地方
调用了这个setter把数据改了。常见的情况是web form调用data binding赋值,少了最
后这个element。
f********f
发帖数: 475
3
不是null,是empty

【在 a*f 的大作中提到】
: 为空是指null还是empty? 如果你能改代码,把currencySummaryData的setter改成
: private或者赋一个dummy值进去再测试,运行出错或者变成了dummy值,说明其他地方
: 调用了这个setter把数据改了。常见的情况是web form调用data binding赋值,少了最
: 后这个element。

f********f
发帖数: 475
4
改成private setter, 没出错,那说明没有其他地方改它的值。
reportInputData里有个constructor, 里面的foreach是专门给currencySummaryData
赋值的:
public ReportInputDataModels(ReportOutPutDataModels outputData)
{
startDate = outputData.startDate;
endDate = outputData.endDate;
enableRange = outputData.enableRange;
seperateReport = outputData.seperateReport;
reportName = Resources.Global.CurrencyReport;
groups = outputData.groups;
groupNames = outputData.groupNames;
currencySummaryData = new Dictionary >();
foreach (string country in outputData.currencySummaryData.Keys)
{
currencySummaryData.Add(country, outputData.
currencySummaryData[country]);
}
}
其中ReportOutputDataModels定义是:
public class ReportOutPutDataModels
{
public DateTime startDate { get; set; }
public DateTime endDate { get; set; }
public bool enableRange { get; set; }
public bool seperateReport { get; set; }
public string reportName { get; set; }
public string groups { get; set; }
public string groupNames { get; set; }
public List data { get; set; }
public object extdata { get; set; }
public string userdata { get; set; }
public int? reportID { get; set; }
public Dictionary currencySummaryData =
new Dictionary();
}
Viewer端:
EasitraxWebReporting.Models.ReportInputDataModels reportInputData = new
EasitraxWebReporting.Models.ReportInputDataModels(ViewData.Model);

@Html.ActionImage("exportPDFReport", "ExportReport", reportInputData, "~/
Content/images/pdf_icon.png", Resources.Global.ExportPDF, Resources.Global.
ExportPDF)

大佬们看出问题了吗?

【在 a*f 的大作中提到】
: 为空是指null还是empty? 如果你能改代码,把currencySummaryData的setter改成
: private或者赋一个dummy值进去再测试,运行出错或者变成了dummy值,说明其他地方
: 调用了这个setter把数据改了。常见的情况是web form调用data binding赋值,少了最
: 后这个element。

l*s
发帖数: 783
5
depends on what is the format of your client side object and how it is bound
, pass it as Jason object or use custom binder

currencySummaryData

【在 f********f 的大作中提到】
: 改成private setter, 没出错,那说明没有其他地方改它的值。
: reportInputData里有个constructor, 里面的foreach是专门给currencySummaryData
: 赋值的:
: public ReportInputDataModels(ReportOutPutDataModels outputData)
: {
: startDate = outputData.startDate;
: endDate = outputData.endDate;
: enableRange = outputData.enableRange;
: seperateReport = outputData.seperateReport;
: reportName = Resources.Global.CurrencyReport;

1 (共1页)
进入Programming版参与讨论
相关主题
超级新手, 求助 python pandas 和pandas_DataReaderwhy vb code faster than csharp???
Question about a C++ compilation error on Visual Studio 2005about layout of List in C#
[c++] 关于构造函数的一个小问题战为止戈,单线程 50M TPS
怎么在bash的脚本文件里自动改文件夹?python pandas一个问题
求最佳解法包子,能否在Python 里生成一个csv 文件,并将它放在一个server 的directory 下?
VNC for multiple users ( >= 2) (转载)感觉写Scala就是一种享受
Question about OleDb...C# 菜鸟问题 -- ObjectDisposedException
Scripting language的几个问题python数据处理的一个问题
相关话题的讨论汇总
话题: public话题: set话题: dictionary