作为一个小故事,我想用我的视图上的一些数据生成一个PDF.所有数据都存储在模型中.因此,在提交按钮上,单击生成PDF按钮,我想将模型传递给控制器.

Model:

public class Analytics
{
    public int Total { get; set; }
    public int y { get; set; }
    public int x { get; set; }
}

View.cshtml:

@model Analytics <!--this one contains all my data I need-->

<!--Display data on page->>
<p> @model.Total </p>
<p> @model.y </p>
<p> @model.x </p>

<form action="@Url.MyAction("GeneratePDF", "Analytics", @Model)" method="post">
       <button type="submit">Generate PDF</button>
</form>

AnalyticsController.cs:

[HttpPost]
public IActionResult GeneratePDF(Analytics analytics)
{
    // here is the problem, analytics is null..

    return View();
}

我不明白为什么分析率是null.我的观点有什么问题吗?

推荐答案

上面的视图代码中有几个打字错误.try 将您的代码修复为:

@model Analytics

model Analytics <!--this one contains all my data I need-->
<!--Display data on page -->


<p> @Model.Total </p>
<p> @Model.y </p>
<p> @Model.x </p>

<form action="@Url.Action("GeneratePDF", "Analytics")" method="post">
    <button type="submit">Generate PDF</button>
</form>

因为您的视图模型包含简单的类型属性,所以它已经在绑定上下文中,您不需要在@Url.Action()as路由值中指定它.

Csharp相关问答推荐

c#处理大量tcp连接

火鸟DBC驱动程序未加载ADF DLC

在2D数组中绘制椭圆

List T.AddRange在传递ConcurrentDictionary作为参数时引发ArgumentExcellent

如何从泛型方法返回一个可为空的T,其中T:notnull?

CS0103 dlibdotnet和www.example.com facerect不在上下文中

. NET Core DB vs JSON模型设计

如何在Visual Studio代码中更改大括号模式{},用于C#语言

JsonSerializer.Deserialize<;TValue>;(String,JsonSerializerOptions)何时返回空?

如何从ASP.NET核心MVC视图和Blazor传递数据

System.Net.Http.HttpClient.SendAsync(request)在docker容器内的POST方法30秒后停止

为什么在使用动态obj+类obj时会调用串联?

在此系统上已禁用获取正在运行的脚本.&在ASP.NET Core Web API中

我的MRG32k3a算法实现返回的数字超出了预期的[0,1]范围

N层解决方案上的依赖注入-删除样板

异步任务调用程序集

多个选项卡上的MudForm验证

Linq SELECT的多条指令

如何在.NET MAUI上在iOS和Mac之间共享代码?(no条件编译和无代码重复)

.NET8支持Vector512,但为什么向量不能达到512位?