我正在尝试在我最近从MVC 3转换为MVC 4 beta的项目中使用新的捆绑功能.它需要global.asax中的一行代码BundleTable.Bundles.RegisterTemplateBundles();,这需要using System.Web.Optimization;在顶部.
当我这样做时,我得到了红色的波浪形线条,上面写着:"你错过了一个装配参考吗?" 当我尝试添加引用,并单击对话框中的.NET选项卡时,从AZ排序,我没有看到System.Web.Optimization.
如何将此ref添加到我的项目中?谢谢.
在一个.NET MVC4项目中如何@Styles.Render运作?
我的意思是,它在@Styles.Render("~/Content/css")哪个文件中调用?
我的文件夹中没有文件或名为"css"的Content文件夹.
我希望将ASP.NET Web API添加到Visual Studio 2012中开发的ASP.NET MVC 4 Web应用程序项目中.我必须执行哪些步骤才能将正常运行的Web API添加到项目中?我知道我需要一个从ApiController派生的控制器,但这就是我所知道的.
如果我需要提供更多详细信息,请与我们联系.
asp.net-mvc asp.net-mvc-4 asp.net-web-api visual-studio-2012
你能解释一下ValidateAntiForgeryToken的用途并向我展示ValidateAntiForgeryTokenMVC 4的例子吗?
我找不到任何解释这个属性的例子?
ASP.NET MVC4 Web API应用程序定义了保存客户的post方法.客户在POST请求正文中以json格式传递.post方法中的customer参数包含属性的空值.
如何解决这个问题,以便发布的数据作为客户对象传递?
如果可能的话Content-Type:application/x-www-form-urlencoded应该使用,因为我不知道如何在发布表单的javascript方法中更改它.
控制器:
public class CustomersController : ApiController {
public object Post([FromBody] Customer customer)
{
return Request.CreateResponse(HttpStatusCode.OK,
new
{
customer = customer
});
}
}
}
public class Customer
{
public string company_name { get; set; }
public string contact_name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
请求:
POST http://localhost:52216/api/customers HTTP/1.1
Accept: application/json, text/javascript, */*; q=0.01
X-Requested-With: XMLHttpRequest
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
{"contact_name":"sdfsd","company_name":"ssssd"}
Run Code Online (Sandbox Code Playgroud) 我的问题与此类似:
除非我想坚持使用MVC自己的捆绑,如果可以的话.我正在脑力崩溃试图弄清楚用于指定样式包的正确模式是什么,例如jQuery UI工作的独立css和图像集.
我有一个典型的MVC站点结构,/Content/css/其中包含我的基本CSS,如styles.css.在该css文件夹中,我还有子文件夹,例如/jquery-ui包含其CSS文件和/images文件夹的子文件夹.jQuery UI CSS中的图像路径是相对于该文件夹的,我不想搞砸它们.
据我所知,当我指定一个StyleBundle我需要指定一个不匹配真实内容路径的虚拟路径时,因为(假设我忽略了到内容的路由),IIS将尝试将该路径解析为物理文件.所以我指的是:
bundles.Add(new StyleBundle("~/Content/styles/jquery-ui")
.Include("~/Content/css/jquery-ui/*.css"));
Run Code Online (Sandbox Code Playgroud)
渲染使用:
@Styles.Render("~/Content/styles/jquery-ui")
Run Code Online (Sandbox Code Playgroud)
我可以看到要求:
http://localhost/MySite/Content/styles/jquery-ui?v=nL_6HPFtzoqrts9nwrtjq0VQFYnhMjY5EopXsK8cxmg1
Run Code Online (Sandbox Code Playgroud)
这将返回正确的,缩小的CSS响应.但随后浏览器发送相对链接图像的请求,如下所示:
http://localhost/MySite/Content/styles/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
Run Code Online (Sandbox Code Playgroud)
这是一个404.
我知道我的URL的最后一部分jquery-ui是一个无扩展名的URL,我的包的处理程序,所以我可以看到为什么相对的图像请求是简单的/styles/images/.
所以我的问题是处理这种情况的正确方法是什么?
我有一个奇怪的问题,mvc4捆绑包不包括扩展名为.min.js的文件
在我的BundleConfig类中,我声明了
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/Scripts/jquery")
.Include("~/Scripts/jquery-1.8.0.js")
.Include("~/Scripts/jquery.tmpl.min.js"));
}
Run Code Online (Sandbox Code Playgroud)
在我看来,我宣布
<html>
<head>
@Scripts.Render("~/Scripts/jquery")
</head><body>test</body>
</html>
Run Code Online (Sandbox Code Playgroud)
当它呈现时,它只会呈现
<html>
<head>
<script src="/Scripts/jquery-1.8.0.js"></script>
</head>
<body>test</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果我将jquery.tmpl.min.js重命名为jquery.tmpl.js(并相应地更新bundle中的路径),则会正确呈现这两个脚本.
是否有一些配置设置导致它忽略'.min.js'文件?
我正在使用asp.net mvc 4 webapi beta来构建休息服务.我需要能够从客户端应用程序接受POSTed图像/文件.这可能使用webapi吗?以下是我目前使用的操作方式.有谁知道这应该如何工作的一个例子?
[HttpPost]
public string ProfileImagePost(HttpPostedFile profileImage)
{
string[] extensions = { ".jpg", ".jpeg", ".gif", ".bmp", ".png" };
if (!extensions.Any(x => x.Equals(Path.GetExtension(profileImage.FileName.ToLower()), StringComparison.OrdinalIgnoreCase)))
{
throw new HttpResponseException("Invalid file type.", HttpStatusCode.BadRequest);
}
// Other code goes here
return "/path/to/image.png";
}
Run Code Online (Sandbox Code Playgroud) 我想要显示500,404和403的自定义错误页面.这是我所做的:
在web.config中启用了自定义错误,如下所示:
<customErrors mode="On"
defaultRedirect="~/Views/Shared/Error.cshtml">
<error statusCode="403"
redirect="~/Views/Shared/UnauthorizedAccess.cshtml" />
<error statusCode="404"
redirect="~/Views/Shared/FileNotFound.cshtml" />
</customErrors>
Run Code Online (Sandbox Code Playgroud)HandleErrorAttribute在FilterConfig类中注册为全局动作过滤器,如下所示:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new CustomHandleErrorAttribute());
filters.Add(new AuthorizeAttribute());
}
Run Code Online (Sandbox Code Playgroud)为上述每条消息创建了自定义错误页面.500的默认值已经开箱即用.
在每个自定义错误页面视图中声明该页面的模型 System.Web.Mvc.HandleErrorInfo
对于500,它显示自定义错误页面.对于其他人,它没有.
有什么我想念的吗?
看起来这并不是显示自定义错误的全部内容,因为我OnException在HandleErrorAttribute类的方法中读取代码并且它只处理500.
我该怎么做才能处理其他错误?
我正在使用实体框架和ASP.NET MVC 4来构建应用程序
我的解决方案分为两个项目;
我的问题是,当我尝试使用' MyEntites'DbContext时,我收到以下错误:
在应用程序配置文件中找不到名为"MyEntities"的连接字符串.
我想这个问题与连接字符串位于类库的app.config而不是MVC项目中有关.
有没有人有什么建议?
asp.net-mvc-4 ×10
asp.net-mvc ×5
c# ×5
javascript ×2
asp.net ×1
bundle ×1
css ×1
jquery-ui ×1
json ×1
namespaces ×1
razor ×1