标签: asp.net-mvc-3

找不到类型或命名空间名称"DbContext"

我是ASP.NET MVC(3)的新手,并且很难解决Visual Studio中的构建错误:

找不到类型或命名空间名称'DbContext'(您是否缺少using指令或程序集引用?)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity;

namespace MyProjectName.Models
{   
    public class MachineModel
    {
        // name
        [Required]
        [Display(Name = "Nom de la machine")]
        public string Name { get; set; }

        // IP
        [Required]
        [RegularExpression(@"(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",
           ErrorMessage = "Donnez une adresse IPv4 valide.")]
        [Display(Name = "Adresse IP de la machine")]
        public string IP { get; set; }
    }

    public class MachineDbContext : DbContext
    {
        public DbSet<MachineModel> Machines{ get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到的两个错误是: …

asp.net-mvc entity-framework visual-studio-2010 visual-studio asp.net-mvc-3

141
推荐指数
6
解决办法
26万
查看次数

为什么Razor _layout.cshtml在文件名中有一个前导下划线?

在默认的ASP.NET MVC 3项目中,布局和部分cshtml文件以下划线开头

  • _viewstart
  • _Layout
  • _LogOnPartial

为什么这个惯例,这是用来做什么的?我需要遵循这个惯例吗?

框架是否为以.cshtml下划线开头的文件赋予了一些特殊含义?

asp.net razor asp.net-mvc-3

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

如何优雅地处理时区

我的网站托管在与使用该应用程序的用户不同的时区.除此之外,用户还可以拥有特定的时区.我想知道其他SO用户和应用程序如何处理这个问题?最明显的部分是在DB内部,日期/时间以UTC格式存储.在服务器上时,所有日期/时间都应以UTC格式处理.但是,我看到了我要克服的三个问题:

  1. 以UTC格式获取当前时间(轻松解决DateTime.UtcNow).

  2. 从数据库中提取日期/时间并将其显示给用户.可能有很多调用在不同视图上打印日期.我在考虑可以解决这个问题的视图和控制器之间的某个层.或者有自定义扩展方法DateTime(见下文).主要的缺点是在视图中使用日期时间的每个位置,必须调用扩展方法!

    这也会增加使用类似的东西的难度JsonResult.你不能再轻易打电话了Json(myEnumerable),它必须是Json(myEnumerable.Select(transformAllDates)).也许AutoMapper可以在这种情况下提供帮助?

  3. 从用户获取输入(本地到UTC).例如,使用日期发布表单需要将日期转换为UTC.首先想到的是创建一个自定义ModelBinder.

这是我想在视图中使用的扩展:

public static class DateTimeExtensions
{
    public static DateTime UtcToLocal(this DateTime source, 
        TimeZoneInfo localTimeZone)
    {
        return TimeZoneInfo.ConvertTimeFromUtc(source, localTimeZone);
    }

    public static DateTime LocalToUtc(this DateTime source, 
        TimeZoneInfo localTimeZone)
    {
        source = DateTime.SpecifyKind(source, DateTimeKind.Unspecified);
        return TimeZoneInfo.ConvertTimeToUtc(source, localTimeZone);
    }
}
Run Code Online (Sandbox Code Playgroud)

考虑到很多应用程序现在都是基于云的,服务器的本地时间可能与预期的时区差别很大,我认为处理时区会是如此常见.

以前优雅地解决了吗?有什么我想念的吗?非常感谢您的想法和想法.

编辑:为了清除一些混乱,我想添加更多细节.现在的问题不是如何在数据库中存储UTC时间,而是更多关于从UTC-> Local和Local-> UTC的过程.正如@Max Zerbini所指出的那样,将UTC-> Local代码放在视图中显然很聪明,但是DateTimeExtensions真的使用了答案吗?当从用户那里获得输入时,接受日期作为用户的本地时间(因为这是JS将使用的)然后使用a ModelBinder转换为UTC是否有意义?用户的时区存储在数据库中,可以轻松检索.

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

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

ASP.NET:在应用程序的预启动初始化阶段,无法调用此方法

我正在尝试在IIS 6.0上运行ASP.NET MVC 3站点.

目前,当我从服务器请求页面时,它会出现以下错误:

分析器错误消息:在应用程序的预启动初始化阶段,无法调用此方法.

在这条线上:

<add name="MyMembershipProvider" type="NS.MyMembershipProvider" connectionStringName="MyDatabase" applicationName="/MySite"/>
Run Code Online (Sandbox Code Playgroud)

我完全难过,并且对ASP.NET应用程序生命周期没有太多线索,更不用说6.0和7.0之间的差异了.阅读它上面的MSDN页面似乎没什么帮助.

有没有人有任何见解或任何良好的调查链接?:)

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

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

从操作筛选器属性重定向

在一个地方进行重定向的最佳方法是什么ActionFilterAttribute?我有一个ActionFilterAttribute调用IsAuthenticatedAttributeFilter并检查会话变量的值.如果变量为false,我希望应用程序重定向到登录页面.我更喜欢使用路由名称SystemLogin重定向,但此时任何重定向方法都可以.

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

131
推荐指数
5
解决办法
11万
查看次数

RestSharp JSON参数发布

我正在尝试对我的MVC 3 API进行非常基本的REST调用,并且我传入的参数不绑定到action方法.

客户

var request = new RestRequest(Method.POST);

request.Resource = "Api/Score";
request.RequestFormat = DataFormat.Json;

request.AddBody(request.JsonSerializer.Serialize(new { A = "foo", B = "bar" }));

RestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
Run Code Online (Sandbox Code Playgroud)

服务器

public class ScoreInputModel
{
   public string A { get; set; }
   public string B { get; set; }
}

// Api/Score
public JsonResult Score(ScoreInputModel input)
{
   // input.A and input.B are empty when called with RestSharp
}
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么吗?

c# rest json restsharp asp.net-mvc-3

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

如何在Razor中编写"Html.BeginForm"

如果我这样写:

form action ="Images"method ="post"enctype ="multipart/form-data"

有用.

但是在使用'@'的Razor中,它不起作用.我犯了什么错误吗?

@using (Html.BeginForm("Upload", "Upload", FormMethod.Post, 
                             new { enctype = "multipart/form-data" }))
{
    @Html.ValidationSummary(true)

    <fieldset>

        Select a file <input type="file" name="file" />
        <input type="submit" value="Upload" />

    </fieldset>
}
Run Code Online (Sandbox Code Playgroud)

我的控制器看起来像这样:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Upload() 
{
    foreach (string file in Request.Files)
    {
        var uploadedFile = Request.Files[file];
        uploadedFile.SaveAs(Server.MapPath("~/content/pics") + 
                                      Path.GetFileName(uploadedFile.FileName));
    }

    return RedirectToAction ("Upload");
}
Run Code Online (Sandbox Code Playgroud)

forms razor asp.net-mvc-3

130
推荐指数
1
解决办法
36万
查看次数

在某些情况下禁用必需的验证属性

我想知道是否可以在某些控制器操作中禁用Required validation属性.我想知道这是因为在我的一个编辑表单中,我不需要用户输入他们之前已经指定的字段的值.然而,我然后实现逻辑,当它们输入值时,它使用一些特殊的逻辑来更新模型,例如散列值等.

有关如何解决这个问题的任何消息?

编辑:
是的客户端验证是一个问题,因为它不允许他们提交表单而不输入值.

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

129
推荐指数
8
解决办法
16万
查看次数

如何在ASP.NET MVC ViewModels中使用knockout.js?

赏金

已经有一段时间了,我还有几个悬而未决的问题.我希望通过添加赏金,这些问题可能会得到解答.

  1. 你如何使用knockout.js的html助手
  2. 为什么需要文档才能使其正常工作(有关详细信息,请参阅第一次编辑)

  3. 如果我使用我的视图模型的淘汰映射,我该如何做这样的事情?由于映射我没有功能.

    function AppViewModel() {
    
        // ... leave firstName, lastName, and fullName unchanged here ...
    
        this.capitalizeLastName = function() {
    
        var currentVal = this.lastName();        // Read the current value
    
        this.lastName(currentVal.toUpperCase()); // Write back a modified value
    
    };
    
    Run Code Online (Sandbox Code Playgroud)
  4. 我想使用插件,例如我希望能够回滚observable,就好像用户取消我希望能够返回到最后一个值的请求一样.根据我的研究,这似乎可以通过人们制作像可编辑的插件来实现的

    如果我使用映射,我该如何使用类似的东西?我真的不想去一个方法,我在我的视图中手动映射我将每个MVC viewMode字段映射到KO模型字段,因为我想尽可能少的内联javascript,这似乎是工作的两倍,那是为什么我喜欢那个映射.

  5. 我担心为了使这项工作变得简单(通过使用映射),我将失去很多KO能力,但另一方面,我担心手动映射只会是很多工作,并会使我的观点包含太多信息和可能会在将来变得难以维护(例如,如果我删除MVC模型中的属性,我也必须在KO视图模型中移动它)


原帖

我正在使用asp.net mvc 3而且我正在寻找淘汰赛因为它看起来很酷但我很难弄清楚它是如何与asp.net mvc特别是视图模型一起工作的.

对我来说,我现在做这样的事情

 public class CourseVM
    {
        public int CourseId { get; set; }
        [Required(ErrorMessage = "Course name is required")]
        [StringLength(40, ErrorMessage = "Course name cannot be this long.")]
        public string CourseName{ …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-mvc-3 knockout.js

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

ASP.Net MVC Html.HiddenFor有错误的值

我在我的项目中使用MVC 3,我看到一种非常奇怪的行为.

我正在尝试为我的模型上的特定值创建一个隐藏字段,问题是由于某种原因,字段上设置的值与模型中的值不对应.

例如

我有这个代码,就像测试一样:

<%:Html.Hidden("Step2", Model.Step) %>
<%:Html.HiddenFor(m => m.Step) %>
Run Code Online (Sandbox Code Playgroud)

我认为两个隐藏的字段都具有相同的值.我所做的是,第一次显示View时将值设置为1,然后在提交后我将Model字段的值增加1.

因此,第一次渲染页面时,两个控件的值都是1,但第二次渲染的值是:

<input id="Step2" name="Step2" type="hidden" value="2" />
<input id="Step" name="Step" type="hidden" value="1" />
Run Code Online (Sandbox Code Playgroud)

如您所见,第一个值是正确的,但第二个值似乎与我第一次显示View时相同.

我错过了什么?*For Html助手是否以某种方式缓存值?如果是这样,我该如何禁用此缓存?

谢谢你的帮助.

asp.net-mvc hidden-fields asp.net-mvc-3 html.hiddenfor

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