标签: asp.net-webpages

我可以在不部署"bin"文件夹的情况下使用ASP.NET网页吗?

我正在创建一个非常简单的网站,最初只是一堆HTML/CSS文件.然后我需要添加一些服务器端逻辑,所以我认为我使用ASP.NET网页,因为它们听起来像一个合适的解决方案.

所以我改变index.htmlindex.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的二进制文件,但这可能就是这样吗?

感谢您确认这一点或向我展示更好的方法.

asp.net asp.net-webpages

5
推荐指数
1
解决办法
6988
查看次数

为什么我的$ .ajax调用不会从cshtml文件返回一个json对象?

我有这个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)

c# ajax json webmatrix asp.net-webpages

5
推荐指数
1
解决办法
3154
查看次数

如何使用WebMatrix在ASP.NET网页中创建自定义错误页面?

信不信由我试图用简单的谷歌搜索寻找这个问题的答案,但我没有找到任何东西(用"WebMatrix自定义错误页面","WebMatrix如何制作自定义服务器端错误页面"等) .),但也许我没有用正确的术语搜索......

无论如何,我只是想知道是否有一种方式(我相信它涉及web.config文件)显示一个定制的错误页面而不是任何服务器端错误页面.

我知道有一种方法可以对某些页面(如404或500)执行此操作但是是否可以针对任何服务器端错误捕获所有页面?(我猜404不行,因为它必须找到你的网站来显示任何自定义页面?)

如果这是一个重复的问题,请原谅我,但我缺乏这方面的知识可能让我没有正确的搜索条件进行搜索,尽管我也尝试过搜索SE.

asp.net web-config custom-error-pages webmatrix asp.net-webpages

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

用于SelectList的System.Web.Mvc与System.Web.WebPages.Html

今天我注意到两个命名空间System.Web.Mvc,并System.Web.WebPages.Html有SelectListItem.它之间有什么区别,有时候你应该使用一个而不是另一个吗?

c# asp.net asp.net-mvc asp.net-webpages asp.net-mvc-5

5
推荐指数
1
解决办法
1464
查看次数

实体框架启用 - 迁移

我的所有搜索都回到了两个问题中的同一个问题,这不是本项目中的问题.我之前从未遇到过这方面的麻烦,但这个特别的项目很奇怪.

首先,项目名称是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)

c# asp.net entity-framework asp.net-webpages

5
推荐指数
1
解决办法
2765
查看次数

向不同项目中的所有Web应用程序Web页面添加命名空间引用

我有三个项目的解决方案:

  • 项目1 - 可重复使用的逻辑/方法(适用于所有其他项目)
  • 项目2 - 网站
  • 项目3 - Web应用程序(项目2转换为Web应用程序)

在项目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相同的行为,但没有看到网页应用程序.

vb.net asp.net webforms asp.net-webpages

5
推荐指数
1
解决办法
1333
查看次数

无法加载ASP.ViewSwitcher类型

FriendlyUrls通过NuGet 将包添加到我的asp.net网页项目中.

当我调试解决方案,它返回错误ASP.ViewSwitcherViewSwitcher.ascx无法加载.

我没有在互联网上找到关于这个问题的任何内容.

有人可以帮助我,如何解决这个问题?

在此输入图像描述

c# asp.net friendly-url asp.net-webpages

4
推荐指数
1
解决办法
3472
查看次数

在后面的代码中调用OnClientClick按钮

我的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+ …

c# asp.net asp.net-webpages

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

Visual Studio 2015无法识别Razor的web.config中的导入名称空间

我有一个包含大量.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也很满意,但我真的不想这样做.

有什么问题,我该如何解决?

VS 2015截图

asp.net intellisense razor asp.net-webpages visual-studio-2015

3
推荐指数
1
解决办法
3299
查看次数

服务器验证中的 Razor 页面返回时没有某些字段

我在使用 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)

razor asp.net-webpages asp.net-core-2.0

3
推荐指数
1
解决办法
2520
查看次数