小编Sac*_*nth的帖子

如何为新用户设置配置文件数据

我有一个MVC3站点,我正在编写代码来注册用户.代码执行此操作:

MembershipCreateStatus createStatus;
Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus);
Run Code Online (Sandbox Code Playgroud)

它接下来要做的是:

HttpContext.Profile["FirstNAme"] = model.FirstName;
HttpContext.Profile["LastName"] = model.LastName;
Run Code Online (Sandbox Code Playgroud)

这是它失败的地方.我得到的错误是:

无法为匿名用户设置此属性.

我理解为什么; 这是因为没有用户登录或没有指定用户,所以当然我无法为用户设置配置文件.我正在从Pro ASP.NET MVC 3 Framework的第754页开始工作,这是我从中获取此代码的地方.我已经在web.config文件中设置了它.

<profile enabled="true" defaultProvider="AspNetSqlProfileProvider">
  <providers>
    <clear/>
    <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
  </providers>
  <properties>
    <add name="FirstName" type="String"/>
    <add name="LastName" type="String"/>
  </properties>
</profile>
Run Code Online (Sandbox Code Playgroud)

我的问题是如何设置我要注册的用户的名字和姓氏?

c# asp.net-membership asp.net-profiles asp.net-mvc-3

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

多个表单登录页面

我有一个MVC3站点,有一个管理站点和一个面向公众的站点.这些控制器,视图,模型等都在同一个MVC项目中.它们是分开的:管理站点位于名为Admin的MVC3区域中,面向公众的站点不属于某个区域,但存在于顶层.管理站点具有"登录"视图,公共站点也具有"登录"视图.在我的web.config文件中,我有:

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogIn" timeout="2880" />
</authentication>
Run Code Online (Sandbox Code Playgroud)

现在,如果我访问公共站点中需要身份验证的任何页面,我会进入公共站点的登录页面,这很棒.但是,如果我访问管理区域中需要身份验证的任何页面,那么我将再次进入公共站点的登录页面.那么问题是如何确保如果我在管理区域中需要身份验证的页面上,我会被发送到管理员登录页面?

web-config razor c#-4.0 asp.net-mvc-3-areas asp.net-mvc-3

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

Membership.IsApproved值未保存

我有这个代码:

MembershipUser user = Membership.GetUser(model.UserName);
if (user != null) 
    user.IsApproved = false; 
Run Code Online (Sandbox Code Playgroud)

user.IsApproved上面的调用确实将IsApproved标志设置为false但是当我随后执行时:

MembershipUser user = Membership.GetUser(model.UserName);
Run Code Online (Sandbox Code Playgroud)

并检查IsApproved标志值是什么true!

怎么了?

c# forms-authentication asp.net-mvc-3

2
推荐指数
2
解决办法
2796
查看次数

Linq表达不受支持

我有以下LINQ to Entities表达式:

var allItemsOver64 =
  _inventoryContext.Items.Where(
  i => DateTimeHelper.CalculateAgeInYears(i.PrimaryInsured.DoB, now) >= 65);
Run Code Online (Sandbox Code Playgroud)

问题是,当我使用allItemsOver64时,它表示不支持此表达式.我有一种感觉,因为调用了CalculateAgeInYears方法而发生了这个错误.为什么会发生这种情况,我该如何解决?

谢谢,

萨钦

编辑:

即使在更改代码以使用IEnumerables后,我仍然会得到相同的错误.这是我现在的代码:

DateTime now = DateTime.UtcNow;
            var allItemsOver64 =
                _inventoryContext.Items.Where(
                    i => DateTimeHelper.CalculateAgeInYears(i.PrimaryInsured.DoB, now) >= 65).AsEnumerable();
            IEnumerable<Item> items65To69 = allItemsOver64.Where(
                i =>
                DateTimeHelper.CalculateAgeInYears(i.PrimaryInsured.DoB, now) >= 65 &&
                DateTimeHelper.CalculateAgeInYears(i.PrimaryInsured.DoB, now) <= 69).AsEnumerable();
Run Code Online (Sandbox Code Playgroud)

c# linq linq-to-entities entity-framework-4

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

使用Linq to Entities获取唯一值

我正在使用EF并且有一个上下文,我可以使用_inventoryContext.Items从中获取Item对象的集合.现在,这些item对象具有一个名为Carrier的字符串值.假设Items集合中有5个项目,它们具有以下Carrier值:

"A", "A", "B", "C", "C"
Run Code Online (Sandbox Code Playgroud)

如何使用_inventoryContext.Items获取唯一的载波值?

"A", "B", "C"
Run Code Online (Sandbox Code Playgroud)

注意

var carriers = _inventoryContext.Items.Select(i => i.Carrier).Distinct();
Run Code Online (Sandbox Code Playgroud)

不起作用; 我得到"不支持方法'Distinct'"没有内部异常.

我正在使用SQL Server 2008 Express.Items是一个DataServiceQuery<Item>,它的Carrier属性是一个字符串.

c# linq linq-to-entities entity-framework-4.1

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

将char*连接到字符串

我有一个期望字符串的函数,我想将const char*连接到要返回的字符串.

以下是帮助说明此方案的示例代码:

void TMain::SomeMethod(std::vector<std::string>* p)
{
  p->push_back(TAnotherClass::Cchar1 + "/" + TAnotherClass::Cchar2);
}
Run Code Online (Sandbox Code Playgroud)

这是另一类来自:

class TAnotherClass
{
 public:
   static const char * Cchar1;
   static const char * Cchar2;
};

const char * TAnotherClass::Cchar1 = "Home";
const char * TAnotherClass::Cchar2 = "user";
Run Code Online (Sandbox Code Playgroud)

我得到以下错误:类型'const char*'和'const char*'的无效操作数到二元运算符+

为什么这无效?请帮忙

c++

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

如何在其他元素中设置样式链接

我有这个结构

<nav>
  <ul id="nav" class="sf-menu sf-navbar sf-js-enabled sf-shadow">
  <li id="level1-home" class="current sfHover sf-breadcrumb">
     <a href="/Admin/Home/Index">
  ...
Run Code Online (Sandbox Code Playgroud)

我想在<a>不影响网站中任何其他链接的情况下设置标记样式.最好的方法是什么?

html css

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

obj目录的目的

一个简单的问题(希望如此)..NET中的obj目录是什么?我的意思是在发生构建时在bin目录之外生成的目录.

.net

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

提交表格更改下拉列表

我正在使用MVC 3和razor,并且有一个表格,其中有一个下拉列表.当下拉列表中的值发生变化时,如何提交表单?我没有提交按钮.

@using (Html.BeginForm())
{
...

<div class="row">
                    <label>
                        Type of Card</label>
                    <div class="item">
                        @Html.DropDownList("PaymentFormModel.CardType", cardTypes, new { required = "required" })
                    </div>
                </div>
...
}
Run Code Online (Sandbox Code Playgroud)

forms razor asp.net-mvc-3

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

关于使用NVARCHAR(MAX)

我有一个数据库,其中有很多字符串列.我应该使用NVARCHAR(MAX)还是将字符串限制为合理的最大值,例如NVARCHAR(100)等?我真正想知道的是,如果我将列设置为NVARCHAR(MAX)并且该列的所有值都是100个字符或更少,那么我可以通过将该列设置为NVARCHAR(100)来节省空间吗?

我知道spac不是这里唯一的问题,数据的"验证"也很重要,但我只是在询问空间问题.

sql-server-2012

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