Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.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
C# WorkContext.CurrentUser.~不可用_C#_Asp.net_Asp.net Mvc_Orchardcms - Fatal编程技术网

C# WorkContext.CurrentUser.~不可用

C# WorkContext.CurrentUser.~不可用,c#,asp.net,asp.net-mvc,orchardcms,C#,Asp.net,Asp.net Mvc,Orchardcms,我有以下代码: <input type="text" name="username" value="@WorkContext.CurrentUser.UserName"/> 然后将初始代码更改为: <input type="text" name="username" value="@wContext.CurrentUser.UserName"/> 有人能给我提些建议吗 编辑:这不是port.Notes变量的问题,如果我删除了与页面呈现良好的workcontext相关的

我有以下代码:

<input type="text" name="username" value="@WorkContext.CurrentUser.UserName"/>
然后将初始代码更改为:

<input type="text" name="username" value="@wContext.CurrentUser.UserName"/>
有人能给我提些建议吗

编辑:这不是port.Notes变量的问题,如果我删除了与页面呈现良好的workcontext相关的代码,我会完全删除与port变量相关的代码,然后它会抛出相同的错误,但指向一个右大括号。为了证明这不是问题,我创建了一个新的ActionResult和视图,只包含@using Orchard和@WorkContext.CurrentUser.UserName,但仍然失败:异常详细信息:System.NullReferenceException:对象引用未设置为对象的实例

  • 奥达提亚

正如Chetan已经回答的那样,您会得到原始异常,因为
WorkContext.CurrentUser
null
。原因很简单:没有当前用户,即没有经过身份验证的用户(您正在浏览网站,但未登录)

这是正常的,您应该添加空检查作为防止NRE的最基本措施


在旁注中,确保选中您创建的输入字段以包含服务器端的实际当前用户。否则,每个登录的用户都将能够编辑页面的HTML并更改其值,例如允许他们以另一个用户名发布。

WorkContext.CurrentUser为空。您需要检查它为什么为空。
    <input type="text"name="username"value="@(WorkContext.CurrentUser.UserName)"/>
@using Orchard
@{
   WorkContext wContext = new WorkContext();
}
<input type="text" name="username" value="@wContext.CurrentUser.UserName"/>
Cannot create an instance of the abstract class or interface 'WorkContext'