Tag: asp.net mvc

如何在.NET MVC的多个视图中重用DropDownList

我项目中的几个视图都有相同的下拉列表… 所以,在该视图的ViewModel中我有: public IEnumerable FooDdl { get; set; } 在控制器中我有: var MyVM = new MyVM() { FooDdl = fooRepository.GetAll().ToSelectList(x => x.Id, x => x.Name) } 到目前为止一切都那么好……但我在每个具有该ddl的视图/控制器中执行相同的代码… 这是最好的方法吗? 谢谢

如何在ASP.NET MVC中的validation消息中呈现html?

我目前正在开发注册页面。 当用户已经存在时,我想在电子邮件字段的错误消息中为用户提供登录和重置密码链接。 在控制器我有: [HttpPost] public ActionResult Register(RegistrationModel registration) { … if(userExists) { const string errorMessage = “User already exist. You can login …”; ModelState.AddModelError(“Email”, errorMessage); return View(“Register”, registration); } } 但是当我尝试在视图中输出此消息时,我没有得到我期望的结果。 我得到像纯文本一样的HTML标记。 我已经尝试过了 : @using(Html.BeginForm()) { @Html.TextBoxFor(m => m.Email) @{ @Html.ValidationMessageFor(m => m.Email) … @Html.Raw(Html.ValidationMessageFor(m => m.Email)) … string validationMessage = Html.ValidationMessageFor(m => m.Email).ToString(); @Html.Raw(validationMessage) […]

MVC自定义身份validation,授权和角色实现

请耐心等待我提供详细信息… 我有一个MVC站点,使用FormsAuthentication和自定义服务类进行身份validation,授权,角色/成员资格等。 认证 登录有三种方式: (1)电子邮件+别名 , (2)OpenID ,以及(3)用户名+密码 。 这三个人都获得了一个auth cookie并开始一个会话。 前两个是访问者使用(仅限会话),第三个是作者/ admin使用数据库帐户。 public class BaseFormsAuthenticationService : IAuthenticationService { // Disperse auth cookie and store user session info. public virtual void SignIn(UserBase user, bool persistentCookie) { var vmUser = new UserSessionInfoViewModel { Email = user.Email, Name = user.Name, Url = user.Url, Gravatar = user.Gravatar }; […]

IEnumerable VS IList VS IQueryable

MVC.net场景的新手(以及.net),但是当我想要用数据填充“列表”时,我似乎找到了各种各样的选项。 在我的情况下,我想从一个选择的项目查询填充一个列表,并用JSON渲染结果输出,所以请耐心等待…. 所以,我的viewmodel类是这样的: [Serializable()] public class TFSquery { public int MsgUid { get; set; } public DateTime CreateStamp { get; set; } } 然后我想用我的查询输出填充它: List z = (from msg in _DB.Msg select new { msg.MsgUID, msg.CreateStamp }).ToList(); 那么我会将输出循环到我的List中,以便我可以在我的Json返回字符串中输出吗? 当我使用LIST VS IENUMERABLE VS IQUERYABLE ? return Json(new { Result = z }, JsonRequestBehavior.AllowGet);

数据注释如何工作?

我在ASP.NET MVC 3项目中使用Data Annotations来validation模型。 这些非常方便,但目前它们对我来说都很神奇。 我读到数据注释不会抛出exception。 那么MVC如何知道将validation错误添加到模型状态字典中? 如果没有抛出exception,由于模型validation而在模型上设置属性的失败如何冒泡到MVC? 我总是假设每次属性失败时抛出exception,并且MVC模型绑定捕获exception并将其添加到模型状态字典中。 为了测试这个,我创建了一个控制台应用程序并添加了一个带有validation注释的示例类: public class MyObject { [StringLength(10, MinimumLength=3)] public string Name { get; set; } } 然后,我实例化了该对象,并尝试为Name属性分配小于3的值。尽管注释表明字符串长度小于3,但该属性分配得很好。 static void Main(string[] args) { MyObject mine = new MyObject(); mine.Name = “hi”; Console.WriteLine(mine.Name); Console.ReadLine(); } 这个小程序向控制台写出“hi”。 为什么? 当我试图将mine.Name设置为“hi”时,我期待它生气。 我错过了什么? 提前致谢。

如何使用带有进度条的ASP.NET MVC4 Web Api上传大文件

如何使用ASP.NET MVC4 Web Api上传大文件 并取得进展? 我看到这篇文章,我明白如何处理上传的文件,但我如何获得进度数据? 如何接受文件POST 请不要发送链接上传产品。 我想了解如何在MVC4 Web Api中处理这个…这里是一个在MVC4 WebApi中处理文件上传的示例代码 public async Task Post() { if (Request.Content.IsMimeMultipartContent()) { var path = HttpContext.Current.Server.MapPath(“~/App_Data”); var provider = new MultipartFormDataStreamProvider(path); await Request.Content.ReadAsMultipartAsync(provider).ContinueWith(t => { if (t.IsFaulted || t.IsCanceled) throw new HttpResponseException(HttpStatusCode.InternalServerError); }); return Request.CreateResponse(HttpStatusCode.OK); } else { throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotAcceptable, “This request is not properly formatted”)); […]

HttpClient和Windows Auth:将用户的消费者登录到服务

我正在努力理解并建立一个服务和消费者,服务将在用户登录消费者时运行。 我的消费者是一个MVC应用程序。 我的服务是一个Web Api应用程序。 两者都在同一域内的不同服务器上运行。 两者都设置为使用Windows身份validation。 我的消费者代码是: private T GenericGet(string p) { T result = default(T); HttpClientHandler handler = new HttpClientHandler() { PreAuthenticate = true, UseDefaultCredentials = true }; using (HttpClient client = new HttpClient(handler)) { client.BaseAddress = new Uri(serviceEndPoint); HttpResponseMessage response = client.GetAsync(p).Result; if (response.IsSuccessStatusCode) result = response.Content.ReadAsAsync().Result; } return result; } 在我的服务中,我调用User.Identity.Name来获取调用者ID,但这总是作为消费者应用程序池ID返回,而不是登录用户。 消费者应用程序池作为网络服务运行,服务器本身受信任以进行委派。 […]

来自字节数组的ASP.NET MVC图像

目前我的ViewModel中有一个代表我的Image的字节数组。 我用以下代码显示它: 现在我不希望在源文件中有一个Base64字符串,而是一个指向图像的链接。 喜欢: 这将返回一个图像。 如何编写这样的方法来返回Image链接?

在哪里可以找到安装了MVC 3的系统中的System.Web.MVC dll?

我想知道在哪里可以找到系统中的System.Web.MVC dll,其中已经安装了MVC 3。 我想在基于X64的系统上使用它。 知道如何获得它们吗?

更新实体列表的有效方法

我正在开发一个允许用户编辑实体列表的项目。 我将这些实体映射到视图模型并使用编辑器字段显示它们。 当用户按下提交按钮时,我会浏览每个模型并进行更新,如下所示: foreach (var viewModel in viewModels) { //Find the database model and set the value and update var entity = unit.EntityRepository.GetByID(fieldModel.ID); entity.Value = viewModel.Value; unit.EntityRepository.Update(entity); } 上面的代码可以工作,但是你可以看到我们需要为每个实体命中两次数据库(一次检索,另一次更新)。 使用Entity Framework有更有效的方法吗? 我注意到每个更新都会生成一个单独的SQL语句。 循环结束后是否有提交所有更新的方法?