小编Dis*_*ile的帖子

使用不显眼的javascript/MVC3和DataAnnotations验证电子邮件地址

jQuery Validation使验证电子邮件地址变得简单:

$("someForm").validate({
    rules: {
        SomeField: {
            required: true,
            email: true,
            remote: {
                type: "POST",
                url: "CheckEmail"
            }
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

这使得SomeField成为必需,必须格式化为电子邮件地址,并且还执行对CheckEmail操作的远程调用(检查重复项).

我喜欢让事情变得尽可能简单,所以我可以用Data Annotations做很多相同的事情:

public class RegisterModel {
    [Required]
    [Remote("CheckEmail", "Home", HttpMethod="POST")]
    public string SomeField { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

ASP.net MVC 3/Data Annotations是否有内置/简单的方法来验证以确保电子邮件地址的格式正确?

如果可能的话,我希望它能产生不引人注目的javascript.

c# unobtrusive-javascript data-annotations unobtrusive-validation asp.net-mvc-3

11
推荐指数
3
解决办法
2万
查看次数

MVC视图中的安全性

在我的MVC应用程序中,我有几个不同的角色:管理员,普通用户等等.

我知道我可以通过Authorize属性将安全性应用于我的控制器:

[Authorize(Roles="Admin")]
public ActionResult Create()
{
    return View();
}
Run Code Online (Sandbox Code Playgroud)

但我还需要对视图应用一些安全性,以便不将View的某些部分显示给某些角色:

@if( User.IsInRole("Admin") )
{
    @Html.ActionLink("Create", "Create")
}
Run Code Online (Sandbox Code Playgroud)

以上述方式执行此操作是否更好,或者在ViewModel中处理此类安全性:

public ActionResult Index()
{
    var model = new IndexViewModel();

    model.CanCreate = User.IsInRole("Admin");

    return View(model);
}

View:
@( Model.CanCreate )
{
    @Html.ActionLink("Create", "Create")
}
Run Code Online (Sandbox Code Playgroud)

第二种方法与第一种方法相比是否有任何好处,还是只是偏好?

c# asp.net-mvc razor

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

MVC MapPageRoute和ActionLink

我创建了一个页面路由,因此我可以将我的MVC应用程序与我项目中存在的一些WebForms页面集成:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    // register the report routes
    routes.MapPageRoute("ReportTest",
        "reports/test",
        "~/WebForms/Test.aspx"
    );

    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
    );
}
Run Code Online (Sandbox Code Playgroud)

每当我在视图中使用Html.ActionLink时,这就产生了一个问题:

<%: Html.ActionLink("Home", "Index", "Home") %>
Run Code Online (Sandbox Code Playgroud)

当我在浏览器中加载页面时,链接显示如下:

http://localhost:12345/reports/test?action=Index&controller=Home
Run Code Online (Sandbox Code Playgroud)

有没有人遇到过这个?我怎样才能解决这个问题?

c# asp.net-mvc asp.net-mvc-routing asp.net-mvc-2

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

正则表达式删除特定的重复字符

我想在C#中创建一个正则表达式,如果重复它就删除一个特定字符,因此它不是字符串的最后一个字符.

例:

"a--b-c-" => "a-b-c"
"-a-b--c" => "a-b-c"
"--a--b--c--" => "a-b-c"
Run Code Online (Sandbox Code Playgroud)

我从不想要 - 重复,我从不希望它成为我的字符串的第一个或最后一个字符.我怎么能写一个正则表达式来做这个?

c# regex

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

数据库设计问题 - 类别/子类别

我有一个问题,我将如何在我的数据库中设计几个表.我有一个表来跟踪类别,一个用于子类别:

TABLE Category
    CategoryID INT
    Description NVARCHAR(500)

TABLE Subcategory
    SubcategoryID INT
    CategoryID INT
    Description NVARCHAR(500)
Run Code Online (Sandbox Code Playgroud)

类别可能类似于电子产品,其子类别可能是DVD播放器,电视等.

我有另一个表将引用Category/Subcategory.是否需要引用SubcategoryID?

TABLE Product
    SubcategoryID INT  -- should this be subcategory?
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来做到这一点,还是这是正确的方法?我不是一个数据库设计人员.如果重要的话,我正在使用SQL Server 2008 R2.

sql database-design sql-server-2008

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

如何使AutoMapper创建一个类的实例

我有以下源类型:

public class Source
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Address1 { get; set; }
    public string Address2 { get; set; }
    public string City { get; set; }
    public string State { get; set; }
    public string ZipCode { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有以下目的地类型:

public class Destination
{
    public string FirstName { get; set; }
    public string LastName { get; set; }

    public Address HomeAddress { get; set; …
Run Code Online (Sandbox Code Playgroud)

.net c# automapper

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

使用javascript的ASP.Net MVC 3.0 Ajax.ActionLink动态对象路由值

0项目

在我看来,我有一个隐藏的文件,有一个UserID.该用户ID是在动作时生成的(因此事先不知道)

一旦这个隐藏字段有一个值,我想将该值用作actionlink routevalue.我可以使用jquery选择器来完成它.

我隐藏的领域是

<input id="NewUserID" type="hidden" value="80">
Run Code Online (Sandbox Code Playgroud)

我的ajax.ActionLink是

@Ajax.ActionLink("Edit", "EditUser", "User", new { UserID = "$('#GetNewPatientID').val()" },
        new AjaxOptions
        {
            OnSuccess = "ShowEditUserForm",
            UpdateTargetId = "EditUserDetails",
            InsertionMode = InsertionMode.Replace,
            HttpMethod = "Get"
        }, new { @class = "button", id = "EditUserButton" }) 
Run Code Online (Sandbox Code Playgroud)

知道这是否可行?

asp.net-mvc asp.net-mvc-3

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

MVC Jquery转到控制器动作

在Jquery中,我需要告诉程序转到EmployeeController和Empl动作.我怎么告诉它这样做.我想以简单的方式在不使用ajax的情况下执行此操作.

asp.net-mvc jquery

10
推荐指数
2
解决办法
3万
查看次数

为本地群集安装证书

我有一些代码可以使用Azure Key Vault进行身份验证,以便检索一些秘密.我使用客户端ID和证书而不是客户端ID和密码进行身份验证.此代码在普通的控制台应用程序中运行良好:

var store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
try
{
    store.Open(OpenFlags.ReadOnly);

    var matchingCertificates = store.Certificates.Find(X509FindType.FindByThumbprint, thumbprint, false);
    if (matchingCertificates.Count != 1)
    {
        return null;
    }

    return matchingCertificates[0];
}
finally
{
    if (store != null) store.Close();
}
Run Code Online (Sandbox Code Playgroud)

只要我在有状态服务应用程序中尝试使用此代码,它就再也无法找到证书.

如何安装证书以使其可用于我的本地群集?

c# azure-service-fabric

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

ASP.net MVC - 导航并突出显示"当前"链接

创建新的MVC项目时,它会使用以下标记创建Site.master:

<div id="menucontainer">
    <ul id="menu">
        <li><%: Html.ActionLink("Home", "Index", "Home")%></li>
        <li><%: Html.ActionLink("About", "About", "Home")%></li>
    </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

我想在这里放置代码,如果我在该页面上,将突出显示当前链接.

如果我添加另一个链接,例如:

<li><%: Html.ActionLink("Products", "Index", "Products")%></li>
Run Code Online (Sandbox Code Playgroud)

如果我在Products控制器中执行任何操作,我希望Products链接处于活动状态(使用类似.active的css类).

如果我在HomeController About操作上,那么About链接应该是活动的.如果我在HomeController的Index操作上,Home链接应该是活动的.

在MVC中执行此操作的最佳方法是什么?

c# navigation asp.net-mvc

9
推荐指数
3
解决办法
3万
查看次数