.Net Core Mvc中Url.Action的一个坑

发布于 2018-02-22  219 次阅读


简单的说
一般在Form中用这个,比如

<form class="form-horizontal" action="@Url.Action("Add")" method="post" id="form-addMenu">

但是这个Url.Action很奇葩的会继承你Url上的参数,routeValues,于是你的表单地址就变成

<form class="form-horizontal" action="/admin/menu/add/7" method="post" id="form-addMenu">

这个表单提交过去,因为Mvc那个路由设置的第一个参数就为id,你后台接收到时你那个实体的id就不是默认的0了,而是这个参数的值
一些操作就可能会失败。
所以这样写,设置为0,或者""

<form class="form-horizontal" action="@Url.Action("Add",new { id = 0 })" method="post" id="form-addMenu">

LoneKing