小编Mos*_*fiz的帖子

变量变为空

我的DataEntityLayer中有一些变量,例如对所有用户都是通用的

public class DataEntityLayer : System.Web.UI.Page
{
    public string UserName
        {
            get
            {
                if (Session["UserName"] == null)
                {
                    GotoLoginPage();
                    return null;
                }
                else
                    return Session["UserName"].ToString();
            }

            set { Session["UserName"] = value; }
        }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用此变量在用户登录时显示用户名,这工作正常,但经常变为空.我怎样才能避免这种情况,或者让我知道在我的图层中声明变量的方法,以便在用户登录时显示用户名.

c# asp.net asp.net-mvc

1
推荐指数
1
解决办法
64
查看次数

实现 IActionFilter

我正在构建以下过滤器:

public class TestflowFilter : FilterAttribute, IActionFilter
{
    public void OnActionExecuted(ActionExecutedContext filterContext)
    {
        var profileId = int.Parse(ClaimsPrincipal.Current.GetClaimValue("UserId"));
        var appId = int.Parse(filterContext.RouteData.Values["id"].ToString());

        if (profileId != 0 && appId != 0)
        {
            if (CheckIfValid(profileId, appId))
            {
                 // redirect
                 filterContext.Result = // url to go to
            }
        }
    }

    public void OnActionExecuting(ActionExecutingContext filterContext)
    {
    }

}
Run Code Online (Sandbox Code Playgroud)

我实际上只需要OnActionExecuted,但由于IActionFilter是一个接口,所以我必须同时实现它们。OnActionExecuting如果我不需要发生任何事情,可以留空吗?还是需要调用 MVC 始终运行的基本版本?

另外,在该OnActionExecuted方法中,如果CheckIfValidtrue,我会重定向用户,但如果不是,我不会执行任何操作。可以吗,还是我需要设置一些属性filterContext

.net c# asp.net asp.net-mvc

1
推荐指数
1
解决办法
7551
查看次数

将int添加到其现有数组中

这是我尝试过的代码

int[] WeeklyTotal = new int[53];
for (int w = 1; w <= 53; w++)
{
    WeeklyTotal[w] = WeeklyTotal[w] + data.Rows[i]["week" + w];  // Error is here
}
Run Code Online (Sandbox Code Playgroud)

但我收到编译错误:

无法将opperator +应用于int和object类型的opperands

这里的语法是什么?

谢谢!

.net c# arrays

1
推荐指数
1
解决办法
295
查看次数

C#在不同类型的对象之间进行转换

首先,我是C#的新手.我得到
错误是:

附加信息:无法将类型为"UserGUI.MyItems"的对象强制转换为"CommonBookLib.AbstractItem".

他们是两个不同的类:

public class MyItems
{
    public string ItemName { get; set; }
    public int CopyNumber { get; set; }
    public int Guid { get; set; }
    public DateTime? TimePrinted { get; set; }
    public string Category { get; set; }
    public string SubCategory { get; set; }
    public bool? BestSeller { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

public class AbstractItem : IPropsDetails
{
    public int CopyNumber { get; }
    public string ItemName { get; }
    public …
Run Code Online (Sandbox Code Playgroud)

.net c# types casting

0
推荐指数
1
解决办法
57
查看次数

将yyyymm整数转换为日期

我想将a转换YYYYMM-integer为Date而不将其转换为character(=是否有类似SAS的mdy函数?).我想替换这段代码:

 dateint<-201511
 datestr<-paste(toString(dateint,length=8),'01')
 date<-as.Date(datestr,'%Y%m%d')
 print(date)
 class(date)
Run Code Online (Sandbox Code Playgroud)

有一个工作版本.如果可能,结果类也应该是一个日期:

 year<-dateint %% 100
 month<-floor(dateint/100)
 date2<-ISOdate(year,month,1) # I can't make this work ..
 print(date2)
 class(date2)
Run Code Online (Sandbox Code Playgroud)

谢谢和亲切的问候

integer r date

0
推荐指数
1
解决办法
1332
查看次数

如何从c#中的字符串中删除最后一个空格字符?

我从文本文件中分割文本,我必须比较2个字符串,一个来自文本框,另一个来自特定行的文本文件.来自文本的字符串在末尾有一个空格,并且比较总是错误的.这是代码.谢谢!

private void button1_Click(object sender, EventArgs e)
{
    Random r = new Random();

    t = r.Next(1,30);
    StreamReader sr = new StreamReader("NomenA1.txt");
    cuv = sr.ReadToEnd().Split('\n');

    string original = cuv[t];

    Random num = new Random();

    // Create new string from the reordered char array.
    string rand = new string(original.ToCharArray().
        OrderBy(s => (num.Next(2) % 2) == 0).ToArray());
    textBox2.Text = rand;
    button1.Visible = false;
    button2.Visible = true;

}

private void button2_Click(object sender, EventArgs e)
{

    button1.Visible = false;
    string a =Convert.ToString(textBox1.Text.ToString());
    string b = …
Run Code Online (Sandbox Code Playgroud)

c#

0
推荐指数
1
解决办法
1392
查看次数

使用linq检查列表中的空值

我有一份清单List<OfferComparison> Comparison.我想检查所有物品是否都Value == null处于if状态.

我怎么能用linq做到这一点?

public class OfferComparison : BaseModel
{
    public string Name { get; set; }
    public string Value { get; set; }
    public bool Valid { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

c# linq list

0
推荐指数
1
解决办法
5621
查看次数

JSON 反序列化错误:字典中不存在给定的键

我正在尝试将 JSON 输出到 Web 表单中的下拉列表。我已经做到了这一点:

WebClient client = new WebClient();
string getString = client.DownloadString("http://myfeed.com/app_feed.php");

JavaScriptSerializer serializer = new JavaScriptSerializer();
dynamic item = serializer.Deserialize<object>(getString);
string name = item["title"];

return name;
Run Code Online (Sandbox Code Playgroud)

这使提要恢复正常,但在线路上遇到错误:

string name = item["title"];
Run Code Online (Sandbox Code Playgroud)

带回此错误:

附加信息:字典中不存在给定的键。

这是我的提要示例:

{"apps":[{"title":"title1","description":"description1"},    
{"title":"title2","description":"description2"},
{"title":"title3","description":"description3"}
Run Code Online (Sandbox Code Playgroud)

所以我以为我在引用第一个标题,我打算遍历它们:

string name = item["title"];
Run Code Online (Sandbox Code Playgroud)

但显然不是!我查看了 Stackoverflow,但找不到可以应用于我自己的代码的答案。

.net c# json deserialization visual-studio-2015

0
推荐指数
1
解决办法
1666
查看次数