【发布时间】:2020-10-12 01:54:37
【问题描述】:
我正在为模式对话框上的按钮编写一个javascript函数。按钮的代码是:
<button type="button" class="btn btn-sm btn-outline-secondary" id="clone" onclick="clone(null, @Model.Id,@Model.CloneId)">Clone</button>
我有一个 onclick 函数,用于单击按钮时:
function clone(e, Id, CloneId) {
var valuesetName = $("#newValueSet").val();
var data = JSON.stringify({ 'id': Id, 'cloneId': CloneId, 'newValueSet': valuesetName });
$.ajax({
type: "POST",
url: '/Tests/Clone',
data: data,
contentType: "application/json; charset=utf-8"
success: function () { }
});
}
ActionMethod 是:
[HttpPost]
public ActionResult Clone([FromBody]EditModel model)
{
//logic
}
模型类是:
public class EditModel
{
public long Id { get; set; }
public long CloneId { get; set; }
public string ValueSetName { get; set; }
}
当我尝试调试此代码时,AJAX 函数会正确获取值,但不会将它们传递给 ActionMethod。这可能是什么原因?任何指针都会有所帮助。提前致谢!
【问题讨论】:
-
您使用的是 ASP.NET Core 3 吗?
ValueSetName不会绑定,因为您在 JSON 上使用newValueSet,所以名称不匹配。 可能您可能会发送Id和CloneId的字符串,这也会失败。我只是猜测... -
@KirkLarkin 是的,更改 json 数据以匹配 EditModel 中的名称传递了值。谢谢! :)
标签: javascript ajax asp.net-core asp.net-core-mvc http-post