Asp.net mvc MVC<;表单操作=@Href
我正在学习本教程,但在理解为什么Asp.net mvc MVC<;表单操作=@Href,asp.net-mvc,asp.net-mvc-5,Asp.net Mvc,Asp.net Mvc 5,我正在学习本教程,但在理解为什么@Href不起作用时遇到了问题 @Href我想它应该指向PostsController中的updateactionresult,但它不起作用,我看不出任何问题。如图所示,我有一个PostsController,我在PostsController中有一个PublicActionResult更新。 为什么它会说找不到路径 到本教程结束时,我可能已经没有头发了 编辑: 在这张图片中,我画了两条线,但我还是算出了另一条 更新: 您应该使用@Url.Action(“更新”
@Href
不起作用时遇到了问题
@Href
我想它应该指向PostsController
中的updateactionresult
,但它不起作用,我看不出任何问题。如图所示,我有一个PostsController,我在PostsController
中有一个PublicActionResult更新
。
为什么它会说找不到路径
到本教程结束时,我可能已经没有头发了
编辑:
在这张图片中,我画了两条线,但我还是算出了另一条
更新:
您应该使用
@Url.Action(“更新”、“发布”)
,它更易于使用。查找重载方法的完整列表,选择适合您需要的方法
作为表单的替代方法,您可以使用@Html.BeginForm()
。使用示例来自:
@使用(Html.BeginForm())
{
@Html.TextBox(“名称”);
@密码(“密码”);
}
您的屏幕截图不显示控制器代码。你能给我看看吗?当然。我会在一秒钟内添加它,但我认为它不会有帮助。似乎您有一个控制器Posts
-假设您有一个操作更新
,它可能只是intellisense没有正确探索路线。您也可以使用@Url.Action(“ActionName”、“ControllerName”)
来构建Url,而不是@Href(“~/Controller/Action”)
@StuartLC。我本来想这么做的,但是它和@Href是一样的吗?是的,尽管它在IMO中稍微封装了一些。更好的是,它提供了编译时的安全性,例如@Url.Action(MyProject.Controllers.Action())
@Tyler-试着构建并运行项目,看看是否有错误-这可能太愚蠢了。我将使用@Url.Action(“更新”,“发布”)
和@Html.BeginForm()
而不是
更有趣。谢谢。使用@Url.Action的一个关键原因是它将引用您的路由表并自动匹配任何自定义模式
public class PostsController : Controller
{
//UPDATE takes (id, title, body, datetime, tags)
public ActionResult Update(int? id, string title, string body, DateTime dateTime, string tags)
{ .......
}
@using (Html.BeginForm())
{
@Html.TextBox("Name");
@Html.Password("Password");
<input type="submit" value="Sign In">
}