标签: razor-pages

在 Razor 页面的 OnGetAsync 处为另一个模型分配值

我正在尝试将值分配给Model另一个 at OnGetAsyncinRazor Page以进行一些数据验证,并将它们分配回实际ModelonOnPostAsync以保存数据。

NullReferenceException在这一行出错Input.TestName = TestData.TestName;

public class TestData
{
    [Key]
    public int TestID { get; set; }
    public string TestName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

页面模型

    private readonly Test.Models.TestContext _context;
    public EditModel(Test.Models.TestContext context)
    {
        _context = context;
    }
    [BindProperty]
    public TestData TestData { get; set; }

    [BindProperty]
    public InputModel Input { get; set; }

    public class InputModel
    {
        [Required, MaxLength(50), MinLength(3)]
        public string TestName { get; …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core razor-pages asp.net-core-2.1

0
推荐指数
1
解决办法
1068
查看次数

IEnumerable<Movies> 不包含 FirstOrDefaultAsync() 的定义

这是我的错误消息:“IEnumerable”不包含“FirstOrDefaultAsync”的定义,并且找不到接受“IEnumerable”类型的第一个参数的可访问扩展方法“FirstOrDefaultAsync”(您是否缺少 using 指令或程序集引用? )

我已执行以下操作,但错误仍然存​​在:

  1. 我没有忘记使用 await,根据此链接:任务不包含“FirstOrDefault”的定义

  2. 我引用了 Sytem.Core 并导入了 System.Linq 和 System.Data.Entity。(System.Linq 不明确/灰色,因此未使用),根据此链接:DbSet 不包含 FirstOrDefault 的定义?

这是我的 .cshtml.cs 代码,其中正在生成错误(第 34 行):

using System.Collections.Generic;
using System.Linq;
using System.Data.Entity;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.EntityFrameworkCore;
using Movies.Models;

namespace Movies.Pages.MediaDetails
{
    public class DetailsModel : PageModel
    {
        private readonly Movies.Models.MoviesContext _context;

        public DetailsModel(Movies.Models.MoviesContext context)
        {
            _context = context;
        }

        MovieDataAccessLayer objmovie = new MovieDataAccessLayer();

        public Movies Movies { get; set; }

        public async Task<IActionResult> OnGetAsync(byte? id)
        {
            if …
Run Code Online (Sandbox Code Playgroud)

t-sql asp.net ienumerable async-await razor-pages

0
推荐指数
1
解决办法
5349
查看次数

如何在一个 Razor 页面中访问 2 个 DBContext

在我的 Razor 页面中,我想使用连接到不同数据库的第二个 DBContext。

我有两个 DBContext 连接到两个不同的数据库,它们在同一个应用程序中独立工作正常。DB1 连接到在 Linux 机器上运行的 MS Sql Server,这是主数据库。DB2 连接到 Windows Server 2016 上的 MS Sql Server。我可以为 DB1 中的表创建 CRUD,并且所有功能都正常工作,我可以为 DB2 中的视图创建读取,并且按预期检索数据。在 DB1 中创建新记录时,我想合并 DB2 中的数据。如何在为 DB1 的 DBContext 创建的 Razor 页面 CRUD 中创建/访问 DB2 的 DBContext。我希望这是有道理的。在过去的几天里,我疯狂地尝试谷歌搜索,但未能找到解决方案。

entity-framework razor entity-framework-6 asp.net-core razor-pages

0
推荐指数
1
解决办法
4071
查看次数

如何在asp.net core razor pages 2.2中设置日期格式和文化

我正在使用 Asp.Net Core 2.2 Razor Pages 应用程序。我想在应用程序级别设置应用程序文化和日期格式。所以经过一些谷歌搜索后,我最终ConfigureServicesStartup.cs 的方法中添加了以下代码

public void ConfigureServices(IServiceCollection services)
        {
            // setting the application culture to en-US with MM/dd/yyyy short date pattern.
            var culture = CultureInfo.CreateSpecificCulture("en-US");
            var dateformat = new DateTimeFormatInfo { ShortDatePattern = "MM/dd/yyyy", LongDatePattern = "MM/dd/yyyy hh:mm:ss tt" };
            culture.DateTimeFormat = dateformat;
            Thread.CurrentThread.CurrentCulture = culture;
            Thread.CurrentThread.CurrentUICulture = culture;
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用。我以错误的格式获取日期。例如, DateTime.Now.ToShortDateString()返回6/25/2019而不是06/25/2019。同样是问题DateTime.Now.ToLongDateString()

如果我将格式更改为“dd/MM/yyyy”,它会返回25/06/2019的日期吗??

我在本地开发环境中运行它。另外,我期望我的应用程序在任何环境、任何机器、任何文化中以我在上面设置的相同格式获取日期。

请帮助和指导我哪里出错了。

提前致谢!!

c# culture date-formatting asp.net-core razor-pages

0
推荐指数
1
解决办法
7510
查看次数

使用 Rotativa 生成 Razor Pages PDF - @Model null

我有一个使用 .net core 3.1 Razor Pages 构建的 Web 应用程序。我需要添加功能以从视图生成 PDF。通常该库正在工作,因为我可以生成静态 PDF,但是当我想使用模型为模板做种时会出现问题。

PageModel如下所示:

    public class DetailsPdfModel : PageModel
    {
        private readonly ICablesData cablesData;
        private readonly IConfiguration configuration;

        public DetailsPdfModel(ICablesData cablesData, IConfiguration configuration)
        {
            this.cablesData = cablesData;
            this.configuration = configuration;
        }

        public Cable Cable { get; set; }

        public IActionResult OnGet(int cableId)
        {
            Cable = cablesData.GetById(cableId);

            if (Cable == null)
            {
                return RedirectToPage("NotFound");
            }
            else
            {
                return new ViewAsPdf("DetailsPdf", this);
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

视图如下所示:

@page
@model DetailsPdfModel
@{
    Layout = …
Run Code Online (Sandbox Code Playgroud)

pdf-generation wkhtmltopdf asp.net-core razor-pages

0
推荐指数
1
解决办法
1386
查看次数

在 razor 页面无法正常工作的 asp.net core 中创建级联下拉列表

我正在尝试首先使用 asp.net core 3.1 代码实现级联下拉列表。我有两张表,分别是车辆品牌和车辆型号。第一个下拉列表将填充品牌,选择任何品牌后,第二个下拉列表将填充型号。但我在模型下拉列表中一直未定义。下面是我的实现。请问我做错了什么?谢谢

汽车服务接口

    
    namespace Application.Common.Interfaces
    {
       public interface IVehicleService
       {
         IEnumerable<VehicleMake> GetMakes();
         IEnumerable<VehicleModel> GetModels(int categoryId);
       }
     }
Run Code Online (Sandbox Code Playgroud)

车辆服务


    namespace Application.Common.Interfaces
    {
      public class VehcicleService : IVehicleService
      {
        private readonly IApplicationDbContext _dbContext;
        public VehcicleService(IApplicationDbContext dbContext)
        {
            _dbContext = dbContext;
        }
        public IEnumerable<VehicleMake> GetMakes()
        {
            IEnumerable<VehicleMake>  makes = _dbContext.VehicleMakes.ToList();
            return makes;       
        }
        public IEnumerable<VehicleModel> GetModels(int MakeId)
        {
            IEnumerable<VehicleModel> model = _dbContext.VehicleModels.Where(x => x.VehicleMakeId == MakeId).ToList();            
            return model;
        }
    }
     }
Run Code Online (Sandbox Code Playgroud)

我的模型页面

namespace Wbc.WebUI.Areas.Tools.Pages
{
    
    public class SearchByMakeModel : PageModel …
Run Code Online (Sandbox Code Playgroud)

sql-server ajax asp.net-core clean-architecture razor-pages

0
推荐指数
1
解决办法
4482
查看次数

Razor Pages .Net Core - 将 ID 从表行传递到模式弹出窗口

我是 Razor 页面的新手,所以请耐心等待。我的页面上有一个表格,填充如下:

在此输入图像描述

单击最后一列将打开一个模式弹出窗口:

在此输入图像描述

其中有一个用于删除所选行的按钮。然而,我似乎无法弄清楚如何将所选行的 ID 从表传递到DeleteSeasonTrip()javascript 函数,在该函数中我发布 Ajax 调用来删除所选行。

我认为我也许能够在行单击上填充隐藏字段并从那里获取它,但想知道是否有更好的解决方案。

modal-dialog asp.net-core razor-pages

0
推荐指数
1
解决办法
999
查看次数

如何从 Razor 页面返回 HTTP 状态代码 500 的 JsonResult?

在我的 ASP.NET Core Razor Pages 应用程序中,我有时会通过 ajax 向服务器发送请求。

在这些情况下,我想返回JsonResult成功或错误。

但我找不到更改JsonResult.

这是我的方法:

public IActionResult OnPostFileUpload()
{
   try
   {
       // code to manage and save the file, this request is AJAX
       return new JsonResult("done");
   }
   catch (Exception ex)
   {
       return new JsonResult(message); // how should I set it to be 500?
   }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core razor-pages

0
推荐指数
1
解决办法
745
查看次数

在 Razor Pages 中通过 onclick 调用方法时出现未捕获的引用错误

我在 file.cshtml 中有这段代码

<button onclick="funcaoClique()" >OnClickTest</button>
Run Code Online (Sandbox Code Playgroud)

我尝试在 file.cshtml.cs 中调用这个方法

public void funcaoClique()
{
    Console.Write("Hello")
}
Run Code Online (Sandbox Code Playgroud)

当我单击该按钮时,控制台中出现以下错误:

未捕获的 ReferenceError:funcaoClique 未在 HTMLUnknownElement.onclick 中定义

c# asp.net-core razor-pages

0
推荐指数
1
解决办法
8458
查看次数

.NET Framework 4.7.2 类库和 .NET 6.0 Razor 项目

我们在 IIS 服务器上部署了 Razor 项目。我们还有一个供基于桌面的应用程序使用的单独的 DLL 项目。我们希望从 Razor 网站调用 DLL 中的功能。鉴于 Razor 网站是 .Net 6 并且类库是 .Net Framework 4.7.2,这可能吗?

.net c# dll razor-pages

0
推荐指数
1
解决办法
1936
查看次数