标签: asp.net-mvc-3

对自定义属性执行客户端验证

我创建了一个自定义验证属性:

public class FutureDateAttribute : ValidationAttribute
    {
        public override bool IsValid(object value) 
        {
            if (value == null|| (DateTime)value < DateTime.Now)
                return false;

            return true;
        }

    }
Run Code Online (Sandbox Code Playgroud)

如何使用jquery在客户端使用它?

validation asp.net-mvc jquery razor asp.net-mvc-3

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

我应该将Glimpse部署到生产站点吗?

我最近在我的项目中添加了Glimpse Debugger包.这增加了对Glimpse dll的引用,并修改了一些Web.Config.

我在开发和生产环境中尽可能地喜欢我的项目.

那么将Glimpse部署到我的生产站点是节省/明智的,还是应该创建一个不同的项目(或者从我的csproj文件创建分支)以仅在本地保存它?

我担心的东西包括:

  • 性能
  • 安全漏洞

asp.net-mvc-3 glimpse

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

List的ViewModel验证

我有以下viewmodel定义

public class AccessRequestViewModel
{
    public Request Request { get; private set; }
    public SelectList Buildings { get; private set; }
    public List<Person> Persons { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)

所以在我的应用程序中,访问请求必须至少有一个人.您可以使用什么方法进行验证?我不希望在我的控制器中进行这种验证,这很简单.是自定义验证属性的唯一选择吗?

编辑:目前正在使用FluentValidation执行此验证(漂亮的库!)

RuleFor(vm => vm.Persons)
                .Must((vm, person) => person.Count > 0)
                .WithMessage("At least one person is required");
Run Code Online (Sandbox Code Playgroud)

c# asp.net model-validation fluentvalidation asp.net-mvc-3

71
推荐指数
4
解决办法
5万
查看次数

如何在一个解决方案中共享多个项目中的脚本?

如果问题不明确.我在一个解决方案中有3个MVC项目.每次我创建一个新项目时,它都会添加"Scripts"文件夹,其中包含我需要的所有.js文件.我不想每次都为每个应用程序创建这个.有没有办法从解决方案中的中央文件夹引用脚本,以便所有应用程序/项目可以共享一个公共脚本文件夹,其中包含所有常见脚本?

编辑: 如果有任何问题,请解释这样做的利弊...现在我很好奇.

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

71
推荐指数
4
解决办法
4万
查看次数

为什么Visual Studio代码格式不适用于Razor标记?

或者,我是否应该问,VS代码格式何时适用于Razor标记?格式化适用于大多数结构,但它似乎阻塞'if'块.下面的代码是由VS格式化的.修复这种情况非常容易,还有一个缩进,但我很好地接受了日常使用中的格式,并且喜欢经常使用它来代替我的大部分代码,所以我宁愿避免手动格式化.现在我只是把它作为VS格式化它.

@{ 
    if (User.Identity.IsAuthenticated)
    {
    <text>Hello </text>
    @Html.Display("@ViewBag.UserName") <text> - </text>
    @Html.ActionLink("Sign Out", "LogOff", "Account", null, new { style = "font-weight: bold;" })
    }
 }
Run Code Online (Sandbox Code Playgroud)

我认为这对于可读性很重要,例如在上面,if块的主体是缩进的,除了看起来更好.

asp.net-mvc visual-studio-2010 visual-studio razor asp.net-mvc-3

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

如何在视图中加载局部视图

这部分观点让我很困惑......

我想在主视图中加载局部视图...

这是简单的例子......

我正在加载Homecontroller Index操作的Index.cshtml作为主页面.

在index.cshtml我正在创建一个链接

@Html.ActionLink("load partial view","Load","Home")
Run Code Online (Sandbox Code Playgroud)

在HomeController中我添加了一个名为的新Action

public PartialViewResult Load()
{
    return PartialView("_LoadView");
}
Run Code Online (Sandbox Code Playgroud)

在_LoadView.cshmtl我只是有一个

<div>
    Welcome !!
</div>
Run Code Online (Sandbox Code Playgroud)

但是,当运行项目时,index.cshtml首先渲染并向我显示链接"加载部分视图"...当我点击它时,它转到新页面instade,将欢迎消息从_LoadView.cshtml呈现到index.cshtml .

有什么不对?

注意:我不想通过AJAX加载页面或者不想使用Ajax.ActionLink

asp.net-mvc asp.net-mvc-partialview razor asp.net-mvc-3

70
推荐指数
5
解决办法
22万
查看次数

从ASP.NET MVC Action获取绝对URL

这可能是一个虚拟问题,但我找不到明确的指示.我在MVC3 Web应用程序中有一个POCO类,其唯一目的是管理服务器中某些文件的备份.通常,它会创建一个备份并将文件名返回给控制器,控制器会发送一封电子邮件,其中包含用于下载它的URL.这工作正常,但我无法构建要发送的绝对URL.无论我使用哪种功能,我总是得到一个相对的URL,比如/Backup/TheFile.zip,而不是http://www.somesite.com/Backup/TheFile.zip.我试过了:

VirtualPathUtility.ToAbsolute("~/Backup/SomeFile.zip");
HttpRuntime.AppDomainAppVirtualPath + "/Backup/SomeFile.zip";
Url.Content("~/Backup/SomeFile.zip");
Run Code Online (Sandbox Code Playgroud)

但它们都返回类似/Backup/SomeFile.zip的东西.任何的想法?

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

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

MVC 3:使用HtmlHelpers有条件地添加禁用属性

我有一个ASP.Net MVC 3 Web应用程序,我正在使用HtmlHelper类向视图页面添加一个复选框,就像这样......

@Html.CheckBox("CheckBox1", true, new { @class = "Class1" })
Run Code Online (Sandbox Code Playgroud)

我想要做的是根据视图状态属性有条件地添加disabled属性.基本上以下是理想的......

@Html.CheckBox("CheckBox1", true, new { @class = "Class1", @disabled = Model.ReadOnly })
Run Code Online (Sandbox Code Playgroud)

遗憾的是,由于disabled属性的性质,这将不起作用,因为分配给disabled属性的任何值(甚至"false")都将转换为true.

我已经想到了一些解决这个问题的解决方案,所以问题不是我怎么能这样做.但是,有一种简单的方法,如上面所需的方法?或者我是否必须诉诸以下其中一项?

我知道我能做什么......

  1. 创建一个if/else语句并写入不同的Html.CheckBox行(对于可读性而言不是很好 - 并且可能会抛出标记警告 - 不确定)

  2. 跳过HtmlHelper类并手写标记以允许更好的条件属性(保持代码更短,但增加了不一致性)

  3. 创建一个自定义帮助程序,它采用"禁用"参数(最干净的解决方案,但需要不需要的额外方法 - 可能是目前为止最好的选择)

asp.net-mvc html-helper asp.net-mvc-3

69
推荐指数
4
解决办法
4万
查看次数

如何访问JSON对象名称/值?

function (data) {
    //add values based on activity type
    //data = JSON.parse(data);
    //alert(abc.Phone1);

    alert(data.myName)

    alert(data.toString());
    if (activityType == "Phone") {
    }
    return;

},
Run Code Online (Sandbox Code Playgroud)

正如您可以看到从控制器$.ajax获取JSON数据的回调函数.

例如:

[{"name":"myName" ,"address": "myAddress" }]

在这种情况下,我的第一个警报给我未定义和第二/第三个警报弹出窗口提出:

[{"name":"myName" ,"address": "myAddress" }]

如何通过名称访问值,以便我的第一个警报填写的myName值是name什么?

ajax jquery json asp.net-mvc-3

69
推荐指数
4
解决办法
36万
查看次数

在Razor中连接字符串

如何在Razor语法中加入两个字符串?

如果我有:@Model.address并且@Model.city我希望我的出局是address city什么?这么简单@Model.address + " " + @Model.city吗?

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

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