在Razor页面中调用操作

xcelm

作为Razor Pages的新手,我对从Razor Page调用方法有疑问。

我在我的域模型中定义了一个名为减去产品的方法。

在我的索引页代码中,我定义了IActionResult sellProduct,该产品对指定的ProductId调用excludeProduct。但是我不知道如何在我的HTML页面上调用此方法。我尝试了很多组合,但是似乎没有任何效果。有人知道如何处理吗?任何帮助是极大的赞赏!

我的域模型是:

public class Product

{
    public int ProductId { get; set; }
    public int Quantity { get; set; }   
    ...
    public void SubtractProduct()
    {
        Quantity -= 1;
    }
}

我的索引页代码是:

public class IndexModel : PageModel
{
    private readonly CfEshop.Data.ApplicationDbContext _context;

    public IndexModel(CfEshop.Data.ApplicationDbContext context)
    {
        _context = context;
    }

    public IList<Models.Product> Product { get;set; }

    public async Task OnGetAsync()
    {
        Product = await _context.Products
            .Include(p => p.Categories).ToListAsync();
    }

    public IActionResult sellProduct(int id)
    {
        var products = _context.Products;

        _context.Products.Find(id).SubtractProduct();
        return Page();
    }
}

最后我的剃刀页面:

@page
@model CfEshop.Pages.Product.IndexModel
<h2>Index</h2>

<table class="table">
    <thead>
        <tr>
            <th>
                @Html.DisplayNameFor(model => model.Product[0].Quantity)
            </th>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in Model.Product)
        {
            <tr>
                <td>
                    @Html.DisplayFor(modelItem => item.Quantity)
                </td>
                <td>
                    <a asp-page-handler="SellProduct" asp-route="@item.ProductId">Sell Product</a>
                </td>
            </tr>
        }
    </tbody>
</table>
哈默德

剃刀页面具有handler-methodsHTTP动词。因此,要从页面中调用方法,您需要先放置Onthe http verb you want然后再放置method name

例如:

public IActionResult OnGetSellProduct(int id)
{
    var products = _context.Products;

    _context.Products.Find(id).SubtractProduct();
    return Page();
}

并在您的视图中将名称传递给asp-page-handler不带OnPost or OnGet前缀或Async后缀的。

编辑:这是视图示例:

<a asp-page-handler="SellProduct" asp-route-id="@item.ProductId">Sell Product</a>

有关更多信息,请查看以下内容:

剃刀页简介

剃刀页处理方法

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从ViewModel调用CORE Razor页面中的方法

razor 代码中的 Ajax 调用刷新页面

从javascript中断Razor View中的调用数据URL操作

从JSP页面的表单操作中调用servlet

如何在 ASP.NET Razor 页面中为我的 CRUD 操作使用多个基类

AJAX调用会在Razor Pages中重新加载我的整个页面吗?

ASP.NET Core Razor Pages 中的 return Page() 在通过 RedirectToPage 调用后不呈现页面

HTML 中的 Asp 项目选择 Razor 页面。你调用的对象是空的

Razor页面@functions中的异步

访问Razor页面中的属性

从Razor页面中的标记获取页面URL

未定义的索引:通过ajax调用调用的php页面中显示的操作

从Razor页面的Index.chtml.cs中的操作方法加载的Ajax Partial中的依赖项注入

比较页面操作前后的函数调用结果

进行某些操作后调用页面加载

在ASP.NET MVC中:从Razor视图调用控制器操作方法的所有可能方法

ASP .NET Core Razor页面中的授权

在Razor页面中访问异步属性

在 Razor 页面中模型绑定视图组件

Bootstrap Datepicker在Razor页面中显示时间

在Razor页面中有条件地调用ViewComponent

通过调用以 .cshtml 结尾的页面进行 Razor Routing

在 Razor Pages 中调用 OnGet 中的方法

从Razor Page Model进行依赖注入调用HomeController操作

重定向到Razor页面中具有ID的页面

aspnetcore 2中的Razor页面默认页面

在 Spring Web MVC 注释中使用具有多个操作的主 jsp 页面并将部分 jsp 页面调用到主页面中的任何方法。任何例子?

页面未在codeigniter中调用

调用函数中的删除页面