首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置Html.BeginForm动作

设置Html.BeginForm动作
EN

Stack Overflow用户
提问于 2017-02-27 21:08:28
回答 2查看 2K关注 0票数 0

剃刀助手没有解决提交表单的正确操作。

如何在Razor助手中设置正确的操作?

因此,我在我的PortfolioController上有以下操作

代码语言:javascript
复制
[HttpGet]
[Route("profile/edit", Name = "edit-profile")]
public ActionResult Edit()
{
    ...
}

[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Edit(EditPortfolioViewModel model)
{
    ...
}

我的表格就像

代码语言:javascript
复制
@using (Html.BeginForm("Edit", "Portfolio", FormMethod.Post, ...)

但形式行动的解决方式是:

代码语言:javascript
复制
<form action="/profile/edit" ...>

而不是

代码语言:javascript
复制
<form action="/Portfolio/Edit" ...>

我知道我可以简单地更改Action方法名,但是我想保留它们的名称。

EN

回答 2

Stack Overflow用户

发布于 2017-02-28 03:08:44

可以使用[ActionName("")]属性将操作名称更改为所需的名称。

代码语言:javascript
复制
[HttpGet]
[Route("profile/edit"]
[ActionName("edit-profile")]
public ActionResult Edit()
{
    ...
}

你的路线开始的形式是

代码语言:javascript
复制
@using (Html.BeginForm("edit-profile", "Portfolio", FormMethod.Post, ...)
票数 1
EN

Stack Overflow用户

发布于 2017-02-27 23:14:59

在一个新项目上重新创建它,看起来就像路由延迟使用到get操作的路由的预期行为,因此它发布到相同的操作名称(因为路由表没有HTTP方法的概念)。在post操作中添加一个新的路径不会有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42495806

复制
相关文章

相似问题

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