我正在创建一个非常简单的网站,最初只是一堆HTML/CSS文件.然后我需要添加一些服务器端逻辑,所以我认为我使用ASP.NET网页,因为它们听起来像一个合适的解决方案.
所以我改变index.html到index.cshtml,加入我需要的代码,我虽然这将是它(我还添加了这个基本的web.config文件:
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)
但是,在本地IIS Express上启动此操作会产生此错误:
无法确定要使用的ASP.NET网页版本.
要使用此站点,请在站点的web.config文件中指定版本.有关详细信息,请参阅Microsoft支持站点上的以下文章:http://go.microsoft.com/fwlink/?LinkId = 254126
所以我把它添加到我的web.config:
<appSettings >
<add key="webPages:Version" value="2.0" />
</appSettings >
Run Code Online (Sandbox Code Playgroud)
现在该网站启动但非常奇怪地处理UTF-8 - 虽然所有HTTP标头,文件编码和元标记都正确设置为UTF-8,但我的国家字符显示不正确.我发现了这个问题:我是否需要web.config用于非ASCII字符?但它并没有真正解决我的问题.
不过,我的设置有什么问题?当我在WebMatrix中创建一个新站点并将我的文件复制到它时,一切正常,即使没有指定Web页面版本web.config.我能看到的唯一区别是binWebMatrix生成的项目中存在文件夹.
所以问题是,我是否需要将bin文件夹作为源文件的一部分?我真的不想在我的index.cshtml中添加一个动态行,只需要在Git中检查价值1.5MB的二进制文件,但这可能就是这样吗?
感谢您确认这一点或向我展示更好的方法.
我有这个jquery使用ajax试图返回一个json对象,但我不是ajax的专业人士,虽然我之前使用过json,只是我正在加载一个json文件而不是试图从cshtml返回一个字符串查询数据库以获取信息的页面(正如我在这里所做的那样).
这是jQuery:
$.ajax({
url: "/AJAX Pages/Compute_Calendar_Events.cshtml",
async: true,
type: "GET",
dataType: "json",
contentType: "application/json",
success: function (jsonObj) {
console.log("AJAX SUCCESS!");
},
error: function (jqXHR, textStatus, error) {
alert("NO AJAX!");
}
});
Run Code Online (Sandbox Code Playgroud)
(我也试过"application/json; charset = UTF-8"作为contentType,但它没有改变任何行为).
这是我指向AJAX的cshtml页面:
@{
Layout = "";
if(IsAjax || 1==1)
{
string jsonString = "{\"events\":[";
string selectQueryString = "SELECT title, summary, eventDate FROM CalendarEvents ORDER BY eventDate ASC";
var db = Database.Open("Content");
foreach (var row in db.Query(selectQueryString))
{
jsonString += "{";
jsonString += "\"title\":" + Json.Encode(row.title) + …Run Code Online (Sandbox Code Playgroud) 信不信由我试图用简单的谷歌搜索寻找这个问题的答案,但我没有找到任何东西(用"WebMatrix自定义错误页面","WebMatrix如何制作自定义服务器端错误页面"等) .),但也许我没有用正确的术语搜索......
无论如何,我只是想知道是否有一种方式(我相信它涉及web.config文件)显示一个定制的错误页面而不是任何服务器端错误页面.
我知道有一种方法可以对某些页面(如404或500)执行此操作但是是否可以针对任何服务器端错误捕获所有页面?(我猜404不行,因为它必须找到你的网站来显示任何自定义页面?)
如果这是一个重复的问题,请原谅我,但我缺乏这方面的知识可能让我没有正确的搜索条件进行搜索,尽管我也尝试过搜索SE.
asp.net web-config custom-error-pages webmatrix asp.net-webpages
今天我注意到两个命名空间System.Web.Mvc,并System.Web.WebPages.Html有SelectListItem.它之间有什么区别,有时候你应该使用一个而不是另一个吗?
我的所有搜索都回到了两个问题中的同一个问题,这不是本项目中的问题.我之前从未遇到过这方面的麻烦,但这个特别的项目很奇怪.
首先,项目名称是Site.该类SiteContext继承DbContext.
当我运行Enable-Migrations时,即使是显式的,包管理器控制台也会返回错误:
PM> Enable-Migrations -ContextType SiteContext
The context type 'SiteContext' was not found in the assembly 'Site'.
Run Code Online (Sandbox Code Playgroud)
但它在代码中就是这样:
// Not in a namespace or anything
public class SiteContext : DbContext {
// public DbSets in here
}
Run Code Online (Sandbox Code Playgroud)
我可以SiteContext在我的站点代码中的任何地方使用,通过它的对象访问数据库等等.它只是无法找到它的Enable-Migrations命令.除此之外,Entity的代码优先功能正常运行.
可能会发生什么想法?我在哪里搞砸了?
(实体框架6.0.2 /网页3.1.1)
我有三个项目的解决方案:
在项目1中,我有这个代码:
Imports Microsoft.VisualBasic
Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration
Imports System.Web
Imports System.Runtime.CompilerServices
Namespace MyCompany
Public Module DataExtensionMethods
<Extension()> _
Public Function SortByColumn(ByVal dt As DataTable, ByVal SortString As String) As DataTable
' Amazing stuff here...
Return dt
End Function
End Module
End Namespace
Run Code Online (Sandbox Code Playgroud)
在老式的Project 2网站中,通过向web.config添加以下内容,可以轻松访问此扩展方法:
<pages controlRenderingCompatibilityVersion="4.0" validateRequest="true" clientIDMode="AutoID">
<namespaces>
<add namespace="MyCompany.DataExtensionMethods"/>
</namespaces>
</pages>
Run Code Online (Sandbox Code Playgroud)
扩展方法立即可用于对DataTable变量的所有引用.
但是,我不能在应用程序范围内使用它在Project 3(Web应用程序)中工作.
在每个页面中,我可以添加:
Imports MyCompany.DataExtensionMethods
Run Code Online (Sandbox Code Playgroud)
然后,这使得扩展方法可用,但是如何在每个页面上不必使用Imports的情况下实现相同的应用程序范围?
在项目2和3中,我使用"添加引用"对话框定义了对项目1的引用.复选框显示仍然存在,但Project 3无法看到 Project 1的逻辑.似乎有很多人看到与WebAPI相同的行为,但没有看到网页应用程序.
我FriendlyUrls通过NuGet 将包添加到我的asp.net网页项目中.
当我调试解决方案,它返回错误ASP.ViewSwitcher中ViewSwitcher.ascx无法加载.
我没有在互联网上找到关于这个问题的任何内容.
有人可以帮助我,如何解决这个问题?

我的aspx网页上有一个按钮,应该在c#代码后面的代码中"点击".OnClientClick方法然后调用JS确认对话框,因此只有当用户单击"确定"时才执行btn_Click函数...
这是我的代码到目前为止: Variante 1
ASPX:
<asp:Button runat="server" ID="btnConfirm" Text="Confirm" OnClick="btnConfirm_Click" />
Run Code Online (Sandbox Code Playgroud)
aspx.cs:
protected void Page_Load(object sender, EventArgs e)
{
// set OnClientClick
btnConfirm.OnClientClick = "confirm('Save in DB?');";
// invoke method
Type t = typeof(System.Web.UI.WebControls.Button);
object[] p = new object[1];
p[0] = EventArgs.Empty;
MethodInfo m = t.GetMethod("OnClick", BindingFlags.NonPublic | BindingFlags.Instance);
m.Invoke(btnConfirm, p);
}
protected void btnConfirm_Click(object sender, EventArgs e)
{
//save something in database
}
Run Code Online (Sandbox Code Playgroud)
通过以下代码获取代码示例:http://forums.asp.net/t/1046550.aspx?How + do+you + laise + a +button + click&event + from+outside+ the+ …
我有一个包含大量.cshtml(WebPages,而不是MVC)文件的网站项目,我在web.config文件中定义了一组通用的命名空间,就像这样
<system.web.webPages.razor>
<pages pageBaseType="Composite.AspNet.Razor.RazorFunction">
<namespaces>
<add namespace="DinArv.Forms"/>
<add namespace="DinArv.Web"/>
</namespaces>
</pages>
</system.web.webPages.razor>
Run Code Online (Sandbox Code Playgroud)
在安装VS 2015 RTM之后,我突然在web.config中定义的名称空间中出现'类型或命名空间......找不到'类型的错误,而Resharper似乎没有问题.我还可以浏览页面,并且在构建我的网站时没有构建错误.在我的Visual Studio 2013中,Intellisense正在按预期工作.
如果我在.cshtml文件而不是web.config中显式导入名称空间,VS 2015也很满意,但我真的不想这样做.
有什么问题,我该如何解决?
asp.net intellisense razor asp.net-webpages visual-studio-2015
我在使用 Razor Pages (ASP.Net Core 2.0) 进行服务器端验证时遇到问题
我有一个创建记录的页面
http://localhost:56876/Entries/Create?employeeID=112345
我的 OnGet 文件背后的代码如下所示:
[BindProperty]
public EntryLog EntryLog { get; set; }
public Employee Employee{ get; set; }
public string empID { get; set; }
public IActionResult OnGet(string employeeID)
{
empID = employeeID;
// for Selects for lookup tables
ViewData["ReasonId"] = new SelectList(_context.Reason, "Id", "Name");
ViewData["ReasonTypeId"] = new SelectList(_context.ReasonType, "Id", "Name");
return Page();
}
Run Code Online (Sandbox Code Playgroud)
上面的代码工作正常,客户端验证工作完美,但我有业务逻辑验证,如果条目日期是今天日期和雇用日期之间的 90,我不应该让条目被保存。
public async Task<IActionResult> OnPostAsync()
{
//Lookup current employeeID hiredDate. if is new employee do not continue. …Run Code Online (Sandbox Code Playgroud) asp.net-webpages ×10
asp.net ×8
c# ×5
razor ×2
webmatrix ×2
ajax ×1
asp.net-mvc ×1
friendly-url ×1
intellisense ×1
json ×1
vb.net ×1
web-config ×1
webforms ×1