Tag: asp.net mvc

剃刀动作链接自动生成?长度= 7的URL?

我有链接在下面的剃刀页面。 @Html.ActionLink("Create New Profile", "Create", "Profile", new { @class="toplink" }) 我看到下面的页面查看源代码 <a href="/admin/profile/create?length=7" class="toplink">Create New Profile</a> 当我点击链接。 url如下所示。 http://localhost:54876/admin/profile/create?length=7 我不想要?长度= 7。 为什么这是自动生成的。

DataAnnotationsvalidation(正则expression式)在asp.net mvc 4 – 剃刀视图

在正则expression式中使用特殊字符时,DataAnnotationsvalidation器不能在asp.net mvc 4 razor视图中工作。 模型: [StringLength(100)] [Display(Description = "First Name")] [RegularExpression("^([a-zA-Z0-9 .&'-]+)$", ErrorMessage = "Invalid First Name")] public string FirstName { get; set; } 剃刀视图: @Html.TextBoxFor(model => Model.FirstName, new { }) @Html.ValidationMessageFor(model => Model.FirstName) 不显眼的validation呈现为: <input type="text" value="" tabindex="1" style="height:auto;" name="FirstName" maxlength="100" id="FirstName" data-val-regex-pattern="^([a-zA-Z0-9 .&amp;amp;&amp;#39;-]+)$" data-val-regex="Invalid First Name" data-val-length-max="100" data-val-length="The field FirstName must be a […]

简单的ASP.NET MVC CRUD视图在JavaScript UI对话框中打开/closures

我有各种简单的ASP.NET MVC视图的CRUD操作,它们自己作为一个简单的网页很好地工作。 我现在将它们整合到网站本身(进入内容),并有例如链接,如“创build新的职位”,将启动一个选定的灯箱克隆的视图(不知道哪一个,可能是彩盒或厚盒,但这并不重要)。 我想要实现的是,视图本身以某种方式检测到它是在JavaScript UI对话框中打开的,所以Form动作(通常是使用简单的Submitbutton的POST)将会用一个逻辑来呈现,行动已经完成。 现在工作的方式是POST / Redirect / GET。 视图应该仍然支持这个简单的模式,当直接通过URL在网页浏览器中打开,但应通过JavaScript对话框打开时提供一些额外的逻辑。 希望你能理解我的问题。 任何帮助赞赏

Asp.Net Mvc Url.Action在外部js文件?

在外部的js文件中,我不能使用 url = "@Url.Action("Action", "Controller")" //url output : @Url.Action("Action", "Controller") //I get IllegalPath Name error. 当我这样写: url = "/Controller/Action" 如果项目位于子文件夹下,则脚本不起作用。 我需要这样的东西作为亲戚Url: url = "~/Controller/Action" 如何做到这一点? 谢谢。

Html.HiddenFor做什么?

虽然我已经阅读了关于Html.HiddenFor的文档,但我还没有掌握它的用途… 有人可以解释它的用途,并举一个简短的例子吗? 这些助手应该在哪里进入代码?

基于外部因素validation对象(即数据存储唯一性)

描述 我的解决scheme有这些项目: DAL =修改的entity framework DTO =能够validation自己的数据传输对象 BL =业务层服务 WEB =演示文稿Asp.net MVC应用程序 DAL,BL和WEB都参考DTO,这是很棒的。 该过程通常以这种方式执行: networking请求被发送到WEB WEB获取DTO发布 DTO通过自定义ActionFilter自动validation validation错误是自动收集的 (确认无误)WEB调用BL提供DTO BL通过使用DTO调用DAL(可以通过它们或仅使用它们) DTOvalidation问题,然后… 我的DTO可以根据自己的状态(属性值)进行validation。 但是现在我遇到了一个问题,但事实并非如此。 我需要他们validation使用BL(因此DAL)。 我真实的例子 :用户注册和WEB获得一个用户DTO得到validation。 有问题的部分是usernamevalidation。 它的独特性应该针对数据存储进行检查。 我该怎么做? 还有其他的信息,所有的DTO实现一个接口(即User DTO实现IUser ),用于IoC目的和TDD。 两者都是DTO项目的一部分。 不可能的尝试 我不能在DTO中引用BL,因为我会得到循环引用。 Compilation error 我不能创build一个额外的DTO.Val项目来引用部分DTO类并在那里实现它们的validation(他们会参考BL + DTO)。 Partial classes can't span assemblies. 可能的尝试 创build一个特殊的ActionFilter来validation对象的外部条件。 这个将在WEB项目中创build,从而看到将在这里使用的DTO和BL。 将DTO放在BL中,并将DTO接口保持为其他项目引用的实际DTO,并重构所有代码以使用接口而不是具体的类。 不要处理外部依赖validation,并让外部依赖项抛出exception – 可能是这个问题的最糟糕的解决scheme 你会build议什么?

在ASP.NET MVC模拟

我有一个内部网上的MVC Web应用程序,并希望能够在我们的FTP服务器上创build文件发送给外部合作伙伴。 模拟代码使用WindowsImpersonationContext。 System.Security.Principal.WindowsImpersonationContext impersonationContext; impersonationContext = ((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate(); StreamWriter sw = System.IO.File.CreateText("PathOnFTPServer"); sw.Write("data"); impersonationContext.Undo(); 以下是发生了什么事以及我的问题的原因: 在假冒前 User.Identity.Name:[我的Windows凭据] System.Security.Principal.WindowsIdentity.GetCurrent()。名称:NT AUTHORITY \ NETWORK SERVICE 发布假冒 User.Identity:[我的Windows凭据] GetCurrent.Name:[我的Windows凭据] 模拟撤消 User.Identity:[我的Windows凭据] GetCurrent.Name:NT AUTHORITY \ NETWORK SERVICE 所以,在我模拟之前,当前用户是系统帐户,但是模拟之后,它使用我的Windows域帐户,它有权在FTP服务器上创build文本文件。 该代码在本地使用Visual Studio Web服务器工作,但不在我们的testing服务器上的IIS上部署时。 我得到一个访问被拒绝的错误。 当正确的用户被冒充的时候,错误的原因是什么?

用Moq嘲弄HttpContextBase

我有一个unit testing夹具,我试图在一个ASP.NET MVC控制器上testing一个ControllerAction,这个控制器用于一个Web应用程序的成员函数。 我试图嘲笑testing的HttpContext。 被testing的ControllerAction实际上在HttpContext上设置了属性,例如Session值,Response.Cookies值等等。这不是所有的代码,但是这里是我试图运行的一个粗略的testing样本: [Test] public void ValidRegistrationDataSuccessfullyCreatesAndRegistersUser() { var context = new Mock<HttpContextBase>() {DefaultValue = DefaultValue.Mock}; context.SetupAllProperties(); var provider = new Mock<MembershipProvider>(new object[] {context.Object}); var controller = new AccountController(context.Object, provider.Object); // This just sets up a local FormCollection object with valid user data // in it to use to attempt the registration InitializeValidFormData(); […]

为多语言ASP.NET MVC Web应用程序设置CurrentCulture的最佳位置

对于多语言ASP.NET MVC 3 Web应用程序,我正在确定控制器工厂的Thread.CurrentThread.CurrentCulture和Thread.CurrentThread.CurrentUICulture ,如下所示: public class MyControllerFactory : DefaultControllerFactory { protected override IController GetControllerInstance(System.Web.Routing.RequestContext requestContext, Type controllerType) { //Get the {language} parameter in the RouteData string UILanguage; if (requestContext.RouteData.Values["language"] == null) UILanguage = "tr"; else UILanguage = requestContext.RouteData.Values["language"].ToString(); //Get the culture info of the language code CultureInfo culture = CultureInfo.CreateSpecificCulture(UILanguage); Thread.CurrentThread.CurrentCulture = culture; Thread.CurrentThread.CurrentUICulture […]

用数据注释分配DateTime格式?

我在我的视图模型中有这个属性: [DataType(DataType.DateTime)] public DateTime? StartDate { get; set; } 如果我想显示date,或用date填充文本框,我有这些: <%: Model.StartDate %> <%: Html.TextBoxFor(m => m.StartDate) %> 每当显示date时,显示如下: 01/01/2011 12:00:00 AM 但我只想显示01/01/2011 有没有办法使用数据注释显示格式? 我不想去每个显示date的实例,并添加一些代码来格式化它。