gpt4 book ai didi

c# - 只有表单 ID 的 Html.BeginForm() 没有生成正确的操作 url

转载 作者:太空狗 更新时间:2023-10-30 01:05:03 24 4
gpt4 key购买 nike

我只想在 beginForm() 中添加 formId

如果我尝试使用
Html.BeginForm(null, null, FormMethod.Post, new {@id="Id"})

那么生成的Html就是
<form action="/newquestion/payment/b9f88f80-f31f-4144-9066-55384c9f1cfc" ... >

我不知道该操作 url 是如何生成的,所以我尝试了,
Html.BeginForm(new {@id="Id"})
但是 Action url 看起来像这样
<form action="/newquestion/payment/Id... >

在这两种情况下,操作 url 都不是它应该的,它没有命中 Controller 的后操作。

最佳答案

当您尝试生成路由时,例如使用 BeginForm,MVC 将尽最大努力包含您可能需要的内容。

如果您位于 domain.com/Home/Index/b9f88f80-f31f-4144-9066-55384c9f1cfc 并且您使用了您提供的代码,那么该操作将生成表单、 Controller 和路由值,因为它找到了它们。

controller / action / id
/Home / Index / b9f88f80-f31f-4144-9066-55384c9f1cfc

解决此问题的一种方法是强制 id 为空(例如空字符串)。

观察:

@using (Html.BeginForm(null, null, new { @id = string.Empty },
FormMethod.Post, new { @id = "Id" }))
{

}

new { @id = string.Empty } 是一个代表路由值的匿名对象。

关于c# - 只有表单 ID 的 Html.BeginForm() 没有生成正确的操作 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20207439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com