为什么我的“;替换参数”;变成空字符串
本文关键字:字符串 参数 我的 替换 为什么 | 更新日期: 2023-09-27 18:28:21
这是"静止"时的代码:
var report_parms = {
GUID: "@Model.GUID",
SerialNumber: "@Model.SerialNumber",
ReportName: "@Model.ReportName"
};
这就是它在运行时的样子,当遍历jQuery:时
var report_parms = {
GUID: "",
SerialNumber: "",
ReportName: ""
};
这是我得到的例外,因为那些字符串是空的:
用户代码未处理System.NullReferenceExceptionMessage=对象引用未设置为对象的实例。StackTrace:位于TLDReporter_SL.App.Application_Startup(对象发送器,StartupEventArgs e)位于MS.Internal.CoreInvokeHandler.InvokeEventHandler(UInt32 typeIndex,Delegate handlerDelegate,Object sender,Object args)位于MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj、IntPtr unmanagedObjArgs、Int32 argsTypeIndex、Int32 actualArgsTypeIndex,String eventName,UInt32标志)
在这个C#方法中:
private void Application_Startup(object sender, StartupEventArgs e)
{
ScriptObject Parms = (ScriptObject)HtmlPage.Window.Invoke("get_report_parms");
string ReportName = Parms.GetProperty("ReportName").ToString(); <--- This is the line that blows up
switch (ReportName)
{
default:
this.RootVisual = new ReceiptRpt();
break;
}
}
所以我的问题是(这是我试图挖掘的遗留代码):"@Model.Bla"的东西应该做什么?有人熟悉这种"魔法"吗?我觉得很奇怪:
0)单词"model"是大写的("model"),而上面Razor语法中引用的模型不是:
@model TLDReporter.Models.TLDSalesReceiptCriteriaModel
而且!:
1) 这些"替换参数"用引号括起来。
这是我必须自己解开的完全"土生土长的、旋转的"东西,还是某种已知数量的东西?
"@Model.Bla"的东西应该做什么?
Razor语法的意思很简单,就是呈现页面模型的属性"Bla"。此行:
@model TLDReporter.Models.TLDSalesReceiptCriteriaModel
指示页面模型的类型。您必须找到控制器代码,才能准确地了解该类的实例是如何返回的(或是否返回)。您应该能够找到一个类似于"XyzController"的类,该类的方法返回"ActionResult"或类似的方法,其内容如下:
var model = new TLDReporter.Models.TLDSalesReceiptCriteriaModel();
return View(model);