第一次使用Asp.net-mvc并且最初遵循NerdDinner教程.我的表单提交按钮如下所示:
<p>
<input type="submit" value="Save" />
</p>
Run Code Online (Sandbox Code Playgroud)
我现在在页面上添加了另一个按钮,附带了jQuery代码.它适用于IE,但是当我在FireFox中测试时,表单会提交.我尝试添加另一个按钮,这次没有附加的jQuery代码,同样的事情发生了.单击该按钮时,表单将提交.
<button id="random-button">Do Nothing</button>
Run Code Online (Sandbox Code Playgroud)
为什么标准button元素在Firefox中提交表单?
我正在尝试运行以下代码,但是当我检查SQL分析器时,看起来它在表上运行完整选择,然后在它返回数据库中的所有结果后进行分组.任何帮助表示赞赏.
var result = _dbContext.LogEvent.GroupBy(x => x.EventLevel)
.Select(g => new
{
eventType = g.Key,
total = g.Sum(i => i.Occurrences)
})
.ToList();
Run Code Online (Sandbox Code Playgroud) <asp:RadioButtonList ID="RdoBtnHasNotified" runat="server" RepeatDirection="Horizontal" AutoPostBack="True" OnSelectedIndexChanged="RdoBtnHasNotified_SelectedIndexChanged">
<asp:ListItem Value="1">Yes</asp:ListItem>
<asp:ListItem Value="0" Selected="True">No</asp:ListItem>
</asp:RadioButtonList>
<asp:TextBox ID="TxtHowNotified" runat="server" TextMode="MultiLine" MaxLength="100"></asp:TextBox>
Run Code Online (Sandbox Code Playgroud)
我希望TextBox通过单击来启用RadioButtonList,而不使用autopostback=true.我怎么能用JavaScript做到这一点?
使用asp.net 5创建新的MVC 6项目时,可以参考DNX 451和DNXCore50.
为什么引用了多个DNX版本并且它们都是必需的?
在WebApi2中,将任意对象放入其中是很常见的HttRequestMessage.Properties.通常它与扩展的方法像做request.SetUserRights()在那里SetUserRights只是将物体放入request.Properties[HttpPropertyKey.UserRights].
现在在ASP.NET 5中没有这样的属性HttpRequest.
什么样的模式应该用于传递任意对象和http请求?
在WebApi中,用于将对象放入request.Properties中,通常使用过滤器.我们仍然在AspNet5中有过滤器,所以问题可以改为:过滤器应该在哪里放置特定于请求的公共数据.此类数据的示例可以是:当前用户的角色,当前用户的语言等.
我正在尝试将iTextSharp与ASP.NET 5 Core一起使用.但是,当我尝试使用iTextSharp 5.5.5构建ASP.NET应用程序时,我收到了这些错误
码:
using Microsoft.AspNet.Mvc;
using System.IO;
using System;
using iTextSharp;
using iTextSharp.text;
using iTextSharp.text.pdf;
// For more information on enabling MVC for empty projects, visit http://go.microsoft.com/fwlink/?LinkID=397860
namespace MyNamespace
{
public class GenerateFileController : Controller
{
// GET: /<controller>/
public string Index()
{
PdfReader reader = new PdfReader("template.pdf");
return "SomeText";
}
}
}
Run Code Online (Sandbox Code Playgroud)
错误:
错误CS0012类型"Uri"在未引用的程序集中定义.您必须添加对程序集'System,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的引用.MyProject.ASP.NET 5.0 MyProject/Controllers\GenerateFileController.cs 17
错误CS0012类型"Stream"在未引用的程序集中定义.您必须添加对程序集'mscorlib,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的引用.MyProject.ASP.NET Core 5.0 MyProject/Controllers\GenerateFileController.cs 17
当我尝试使用ASP.NET 4.6模板做同样的事情时,它工作正常.问题是我想在这个项目中使用ASP.NET 5 …
我创建了一个ASP.NET 5项目,主要用于前端打字脚本应用程序.
我正在使用grunt和grunt-ts来编译.
我有一个'src'文件夹,其中包含我的所有打字稿文件
grunt-ts编译'src'文件夹中的所有内容,并将其与单个js文件组合,然后将其放入wwwroot文件夹中.还会生成一个打字稿定义文件并将其放在wwwroot文件夹中.
用grunt/grunt-ts编译完美无瑕.
问题:当定义文件存在于wwwroot文件夹中时,visual studio IDE开始给我很多"重复标识符"错误.这当然是因为定义文件.
有没有办法让visual studio忽略它的IDE /内部打字稿编译的wwwroot文件夹(或任何文件夹)?
是否有BitConverter支持 .Net Core 的类或其他类,我可以将整数和其他值读取为具有 Big Endian 编码?
我对需要编写一组辅助方法感觉不太好:
int GetBigEndianIntegerFromByteArray(byte[] data, int startIndex) {
return (data[startIndex] << 24)
| (data[startIndex + 1] << 16)
| (data[startIndex + 2] << 8)
| data[startIndex + 3];
}
Run Code Online (Sandbox Code Playgroud) 早些时候我问了这个问题并得到了一个有效的答案.为了使您的ASP.Net 5应用程序能够引用以.Net Framework 4.5为目标的普通.Net类库,您必须从project.json文件中删除'"dnxcore50":{}'引用.
大.这适用于一个没有做任何事情的简单ClassLibrary项目.
现在我想尝试使用更复杂的类库.例如,引用其他NuGet包的类库(例如HtmlAgilityPack)和相同的技术不起作用.
这非常令人沮丧.我有点傻眼,简单地引用类库不再适用于新版本的ASP.Net.
似乎要删除的"功能"之一是能够为不在您的解决方案中的项目引用已编译的DLL."浏览"按钮从ASP.Net 5项目的"添加引用"对话框中消失:

经典项目仍然有浏览按钮:

为什么?如何引用我机器上的类库,但我不想包含在我的项目中?
使用热键快捷方式创建菜单的正确/最佳方法是什么?
我只想要一个像Visual Studio这样的文件菜单,它具有新建,打开,保存,全部保存,退出以及其他一些标准快捷方式.
似乎InputGestureText显示了相应的文本,但由于它被称为"文本"并且似乎没有触发事件,我将假设这不是正确的方法.Command体系结构看起来也相当笨重,所以如果有更好的方法,我不想走这条路.
更新:为清楚起见,假设我使用以下菜单:
<Menu>
<MenuItem Header="_File">
<MenuItem Header="_New" />
<MenuItem Header="_Open" />
<Separator />
<MenuItem Header="_Save" />
<MenuItem Header="Save _All" />
<Separator />
<MenuItem Header="_Export"/>
<MenuItem Header="_Import"/>
<Separator />
<MenuItem Header="E_xit"/>
</MenuItem>
</Menu>
Run Code Online (Sandbox Code Playgroud)
导出和导入是自定义快捷方式; 微软没有像ApplicationCommands那样构建的东西.您能否提供完整的解决方案,包括必要的C#自定义代码?(它不仅会帮助我,而且我希望帮助其他寻找类似问题的人.)
有谁知道如何传递URL作为查询字符串参数,然后在HttpGet方法中获取URl作为参数?
我正在使用Visual Studio Express 2015RC,我创建了一个简单的MVC 6应用程序,但是当我尝试发布它时,我没有看到将它部署到IIS的选项,我看到了选项Microsoft Azure Web App,导入和文件系统,我尝试了文件系统但看起来更像是创建独立应用程序从控制台启动,现在,在调试时我可以选择IIS Express或web命令,没有IIS选项,所以问题是,如何将我创建的MVC6 Web应用程序部署到IIS?
我有一个简单的中间件:
public class MiddlewareInterceptor
{
RequestDelegate _next;
public MiddlewareInterceptor(RequestDelegate next)
{
_next = next;
}
public Task Invoke(HttpContext ctx)
{
ctx.Response.WriteAsync("<h2>From SomeMiddleWare</h2>");
return _next(ctx);
}
}
Run Code Online (Sandbox Code Playgroud)
在我的Startup.cs配置方法中,我像这样挂钩:
app.UseMiddleware<MiddlewareInterceptor>();
Run Code Online (Sandbox Code Playgroud)
上面的构建和应用程序似乎运行正常,但我在拦截器Invoke方法中的断点永远不会命中.同样,从来没有任何产出.我也试过了Debug.WriteLine.
现在,我也试过这个方法:
public class MiddlewareInterceptor : OwinMiddleware
{
public MiddlewareInterceptor(OwinMiddleware next) : base(next){}
public override async Task Invoke(IOwinContext context)
{
Debug.WriteLine(context.Request.Uri.ToString());
await Next.Invoke(context);
}
}
Run Code Online (Sandbox Code Playgroud)
在我的Startup.cs配置方法中,我像这样挂钩:
app.Use(next => new MiddlewareInterceptor(next).Invoke);
Run Code Online (Sandbox Code Playgroud)
不幸的是,基础OwinMiddleware构造函数正在寻找下一个OwinMiddleware作为参数,与你不同RequestDelegate.所以我的app.Use实例化MiddlewareInterceptor失败是因为next类型RequestDelegate.
最后,我在Configure方法中直接尝试了一个内联函数,它也永远不会遇到断点:
app.Use(async (ctx, next) => …Run Code Online (Sandbox Code Playgroud) asp.net-core ×10
.net-core ×2
asp.net ×2
asp.net-mvc ×2
c# ×2
dnx ×2
button ×1
firefox ×1
form-submit ×1
grunt-ts ×1
itextsharp ×1
javascript ×1
menu ×1
middleware ×1
owin ×1
typescript ×1
wpf ×1