【发布时间】:2020-04-20 02:38:28
【问题描述】:
我正在使用 ASP.NET Core 并且有以下MyPage.cshtml:
@page
@model MyServer.Pages.MyPageModel
@{
ViewData["Title"] = "MyPage";
}
<h1>MyPage</h1>
@foreach (var sub in Model.Items)
{
<div>
<input type="checkbox" id="isSelected" checked="@sub.Value" />
<label for="isSelected"><strong>@sub.Key</strong></label>
</div>
}
<a asp-page-handler="Save">Save</a>
还有以下MyPage.cshtml.cs:
using System;
using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace MyServer.Pages
{
public class MyPageModel : PageModel
{
public Dictionary<string, bool> Items = new Dictionary<string, bool>();
public void OnGet()
{
Items.Add("Item 1", true);
Items.Add("Item 2", false);
Items.Add("Item 3", false);
Items.Add("Item 4", false);
Items.Add("Item 5", true);
}
public void OnGetSave()
{
Console.WriteLine("Save button clicked!!");
}
}
}
我的目标是在单击 Save 元素时触发 Save() 方法。但目前它“清除”了页面上的其他数据:
如何创建一个按钮元素来触发Save() 方法来保存我的数据状态?
【问题讨论】:
-
您的 Razor 页面中似乎没有表单。您还需要表单输入上的名称属性。您应该阅读有关 Razor Pages 中表单的一些基础知识:learnrazorpages.com/razor-pages/forms
-
@HameedSyed 这不是 MVC。 Razor 页面中没有控制器:learnrazorpages.com
标签: c# asp.net-core .net-core razor-pages asp.net-core-mvc-2.0