Tag: asp.net mvc

ASP MVC上ViewModel字段的条件validation

标题:ASP MVC上ViewModel字段的条件validation 我有一个关于ASP MVCvalidation的问题。 假设我有以下View模型 public class PersonViewModel { [Required] public string Name {get; set; } [Required] public string Email {get; set; } } 根据这个,当我提交表单时,MVC将validation两个字段都有值。 但是,在我的网站中,我遇到了可以在全局网站设置中关闭电子邮件的情况,因此模型将仅在表单上呈现名称文本框。 现在,当我提交表单时,它仍然要求我输入电子邮件字段,因为它被指示为“必需”,尽管用户现在无法填写该字段。 使用ASP MVCvalidation时是否有针对此类场景的解决方案?

是否可以在ASP.NET MVC项目中利用ICommand?

基本上,我正在创建一个可移植的类库,并创建一堆ViewModel: public class CustomerViewModel : ViewModelBase { public string FirstName { … } // INPC public string LastName { … } // INPC public string FullName { get { return FirstName + ” ” + LastName; } } public ICommand DoFooCommand { get; private set; } // DelegateCommand private bool CanDoFoo(object parameter) { … } […]

Azure Redis无法连接到Redis服务器

我正在使用StackExchange.Redis.StrongName 1.0.394我正在尝试连接到我的Azure Redis,但是当我运行我的项目时,我一直收到此错误: RedisConnectionException: It was not possible to connect to the redis server(s); to create a disconnected multiplexer, disable AbortOnConnectFail. SocketFailure on PING 奇怪的是,如果我使用StackExchange.Redis 1.0.394一切正常,但我需要StrongName版本才能使用RedisSessionStateProvider。 以下是连接Redis的代码: private static ConnectionMultiplexer Connection { get { if (_connection == null || !_connection.IsConnected) { var config = new ConfigurationOptions(); config.EndPoints.Add(“myredisname.redis.cache.windows.net”); config.Password = “myverylongkey”; //in ms config.SyncTimeout = 5000; […]

使用自定义架构重定向到外部URL

我有Asp.net MVC4项目。 如果调用了指定的动作,我想重定向到外部URL。 Url应该具有自定义架构,例如不是http://而是myschema:// 。 我知道要重定向到google.com,我可以使用return Redirect(“http://google.com”) ,但如果我调用return Redirect(“myschema://someaddress.com”) ,这不起作用 我需要这个自定义架构来启动IOS设备上的应用程序,我需要在MVC项目中进行重定向,因为我想发送链接到电子邮件,此链接将导致我的网站上的操作,此操作将重定向到自定义架构。 直接在邮件中发送带有自定义架构的链接无效,因为邮件服务器会从邮件中删除此链接。 此外,我不想将用户重定向到前端,他需要点击自定义架构的链接。 是否可能或应该以其他方式进行?

返回空的Json对象

我试图在C#中返回一个Json对象。 我是MVC控制器的新手并且第一次使用Json,我返回这个对象,它是空的。 public class A { private string name; public void set(string data) { name = data; } public string get() { return name; } } public JsonResult Hello() { A obj = new A(); obj.set(“Abc”); JavaScriptSerializer js = new JavaScriptSerializer(); string jsonVar = js.Serialize(obj); return Json(jsonVar, JsonRequestBehavior.AllowGet); }

重用WEB API OData控制器的现有ASP.NET-MVC 5 Identity 2授权,以便轻松登录其他应用程序?

我有完整的ASP.NET-MVC5应用程序,我通过WEB API 2 OData控制器进行了扩展。 比如我有: public class PersonController : ODataController 和需要授权的MVC控制器 [Authorize] public class PersonController : Controller 两个控制器都在我的DbSets中使用ApplicationDbContext 我不想通过WEB API控制器向世界上的每个人提供有关人员的数据。 我已经在我的MVC应用程序中拥有User , Moderator和Admin角色。 我可以以某种方式使用已经存在的授权模块(Identity 2.x),当有人试图从Person WEB API Controller获取数据时要求登录。 例如: http://localhost:17697/odata/Person?$expand=ReceivedCalls 直接问题 : 如果我做: [Authorize] public class PersonController : ODataController { 然后当我去链接时: http://localhost:17697/odata/Person 我被重定向到登录页面。 但是这个登录页面适用于人类。 如何使客户端应用程序轻松登录。

具有一个固定动作的MVC路由和具有多个可选参数的控制器

基本上我有一个问题,我想在多个控制器中进行一个默认操作,并使用我的自定义URL使用多个可选参数,如下所示: www.mydomain.com/{controller name} / {v1} / {v2} / {v3} / {v4} 并且也不希望在url中使用动作名称。 我在routeconfig.cs中有这个路由 routes.MapRoute( name: “Blog”, url: “{controller}/{v1}/{v2}/{v3}/{v4}”, defaults: new { controller = “Blog”, action = “searchBlog”, v1 = UrlParameter.Optional, v2 = UrlParameter.Optional, v3 = UrlParameter.Optional, v4 = UrlParameter.Optional }); routes.MapRoute( name: “Forum”, url: “{controller}/{v1}/{v2}/{v3}/{v4}”, defaults: new { controller = “Forum”, action = “searchForum”, v1 […]

修改CookieAuthenticationOptions LoginPath OnRedirectToReturnUrl事件

我在MVC 6 ASP.NET 5项目中进行了以下设置: 配置方法中的Startup.cs: app.UseCookieAuthentication(options => { options.AuthenticationScheme = “Cookie”; options.LoginPath = new PathString(“//account/signin/”); options.AccessDeniedPath = new PathString(“//account/unauthorised/”); options.AutomaticAuthenticate = true; options.AutomaticChallenge = true; options.Events = new CookieAuthenticationEvents { OnRedirectToReturnUrl = MyClass.RedirectToReturnUrlAsync }; }); 活动课程: public static class MyClass { public static async Task RedirectToReturnUrlAsync(CookieRedirectContext context) { context.Options.LoginPath = new PathString(“//account/signin”); } } 让我们说用户转到以下url: […]

从Server for ASP.Net MVC Ajax请求重定向到新页面

我正在尝试使用RedirectToAction()从另一个控制器调用方法。 但它不起作用。 你能解释一下,我做错了什么? [HttpPost] public ActionResult AddToWishList(int id, bool check) { var currentUser = WebSecurity.CurrentUserId; if (currentUser != -1) { // … } else { return RedirectToAction(“Login”, “Account”); } } 我用HTML调用方法: $(document).ready(function () { /* call the method in case the user selects a checkbox */ $(“#checkbox”.concat(@Model.Id)).change(function () { $.ajax({ url: ‘@Url.Action(“AddToWishList”, “Item”)’, type: ‘POST’, […]

在ASP.NET MVC上提供静态文件(C#)

我是.NET框架的新手,我想知道什么是提供静态内容和访问用户生成内容的最佳方式。 假设我有以下文件: logo.jpg document.pdf etc.doc 我应该把它放在哪里(在哪个文件夹上)? 我如何访问它? 最后,把它带入另一个层面。 假设我有一个允许用户上传文件的网络应用程序(比如说一些照片)。 我想知道的是我的文件夹/目录的结构应该如何? 在django / CI中,我会有一个文件夹,如下所示: application / {all-web-app-related-folder-and-file-goes-here} uploads / {all-related-user-generated-content-goes-here-categorated-by-file-type} assets / {css -javascript文档,将-GO-这里} 注意:我没有做任何事情或做过任何尝试。 仅仅因为我不知道如何访问try静态内容。 我曾经尝试访问位于Content / Scripts文件夹中的* .css或* .js文件。 即:localhost:12345 / Scripts / jquery.js 事实certificate,它不是ASP.NET MVC中的简单过程 哦顺便说一句,在某些情况下,我也想从我的css文件中访问我的图像。 这给我带来了另一个困惑。 编辑1:我读了下面的文章 http://sofzh.miximages.com/c%23/ picture.png“)” 如果我想访问图像文件,上面的示例是合适的。 但我不确定这是否是理想的做法。 然而,这是我目前可以遇到的最简单的解决方案(或者我应该说,相当天真)。 任何提示将不胜感激。