首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么asp-route在post上传递值为"0“

为什么asp-route在post上传递值为"0“
EN

Stack Overflow用户
提问于 2020-04-19 05:04:21
回答 1查看 79关注 0票数 0

在我的表单剃刀页面中,我有一个按钮,在提交时使用参数"int id“调用方法"OnPostEditMe”:

代码语言:javascript
复制
@{ 
    var idbook = @Html.DisplayFor(a => a.EditBook.Id);
    //idbook on page load gets id number of object EditBook when page loads, this works, if I add this value anywhere in razor page it displays correctly 
}

<form method="post">
    <div class="form-group row">
        <div class="col-3 offset-3">
            <button asp-page-handler="EditMe" asp-route-id="@idbook" type="submit"> 
                    Update @idbook
            </button>  
        </div>
    </div>
</form>

但是当我点击这个按钮时,它调用了方法OnPostEditMe,但是用参数"0“代替了用”idbook“加载的值:

代码语言:javascript
复制
public async Task<IActionResult> OnPostEditMe(int id)
{
    var tmp = id; //id is always 0
    ...
}

出什么问题了,为什么asp-route-id="@idbook“没有传递页面上加载的参数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-19 05:09:40

您必须在form上而不是按钮上进行设置

代码语言:javascript
复制
<form method="post" asp-route-id="@idbook">

或者,您可以使用隐藏输入

代码语言:javascript
复制
 <input value="@idbook" name="id" id="id" type="hidden"/>.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61296217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档