【发布时间】:2021-02-15 13:07:18
【问题描述】:
我正在尝试在 asp.net 中创建一个 web api。我正在尝试使用 ajax 将我的查询参数发送到操作方法,但它从未到达它。仅供参考,我对 ajax 的经验并不丰富。
我试图在我的视图中使用表单将数据传递给操作方法,但它什么也没做。这是我的看法:
<form action="/api/values" method="put">
<ul>
<li>
<input type="text" id="Id" />
</li>
<li>
<input type="text" id="FirstName" />
</li>
<li>
<button onclick="Update()" class="btn btn-primary">Update</button>
</li>
</ul>
</form>
这是我的 ajax:
<script>
function Update(Id, FirstName) {
$.ajax({
url: "/api/values/" + Id + "/" + FirstName,
type: "PUT",
data: {
Id: Id,
FirstName: FirstName
},
success: function () {
alert("success");
}
)};
}
</script>
我的网址看起来像:/api/values?Id=123XXXjxn&FirstName=Billy
这永远不会到达我的控制器:
[HttpPut("{Id}/{FirstName}")]
public ActionResult PutRequest([FromQuery] string Id, [FromQuery] string FirstName)
{
//do stuff
}
我只使用[HttpPut] 属性进行了尝试,并使用了[Route("{Id}/{FirstName}")] 属性,并且在参数中没有[FromQuery]。我被卡住了,我认为这与我的 ajax 有关,而且我的方法无法读取查询参数,但我不完全确定。
【问题讨论】:
-
我看不到 api 前缀应该来自哪里(控制器?)和 values
-
还有为什么这里有查询参数
/api/values?Id=123XXXjxn&FirstName=Billy,这里有路径/api/values/" + Id + "/" + FirstName, -
是的,我假设我的 ajax 或我的查询完全错误,我应该如何修复它,也许就像我的 ajax 中的
/api/values?Id={Id}&FirstName={FirstName}一样? -
每当我填写表格并点击更新时,我的网址都是这样的
-
它会自动添加
?和&,但我希望网址为/api/values/123XXXxxx/Billy
标签: c# asp.net ajax asp.net-web-api put