我有一个问题,我被搁置了一段时间。我对这些东西比较新,所以请耐心等待。我觉得解决起来很简单,但我现在正在运行圈子。我的目的是做一个简单的警报,通知该方法已经完成。正如您在下面看到的,我的第一次尝试是使用简单的字符串和if语句。我不想再重新加载页面了,但现在我遇到的问题是方法在 alert 脚本启动之后结束。
所以我有一个控制器:
[HttpPost]
public ActionResult Executor(LMCMainViewModel model)
{
var curlsExecutor = _curls;
var applicationPurgeCurl = curlsExecutor.GetApplicationCurl(model);
var temporary = model.SuccessExecutionStatus = curlsExecutor.CurlCaller(model.ApplicationList.ApplicationCurl);
var tempListOfApplications = PopulateModel(model);
model.ApplicationList.ListOfApplications = tempListOfApplications.ApplicationList.ListOfApplications;
model.SuccessExecutionStatus = temporary;
return View("ListOfApplications", model);
}
我的视图:
@model LMC.Models.LMCMainViewModel
@{
ViewData["Title"] = "Liberation";
}
@using (Html.BeginForm("HeaderString", "LMC"))
{
}
@using (Html.BeginForm("Executor", "LMC", FormMethod.Post))
{
<div class="col-sm-2" asp-action="ListOfApplications">
@Html.DropDownListFor(x => x.ApplicationList.ChosenApplication, Model.ApplicationList.ApplicationListItem, new { @id = "DropdownID" })
</div>
<div class="col-sm-2 col-sm-push-5">
@Html.HiddenFor(x => x.ApplicationList.ApplicationListItem)
<input class="btn ctn-success" id="submit" type="submit" value="Submit" />
<button id="submitButtonAjax" type="button" class="btn btn-success">Ajax button</button>
<div class="col-sm-12">
@Html.Label(null, (Model.SuccessExecutionStatus ? "Success" : " "),
new { Style = Model.SuccessExecutionStatus ? "color: green;" : "color: red;" })
</div>
</div>
}
我试图实现Ajax脚本的许多变体,但是我变得如此扭曲,以至于我甚至无法发布给你最好的...我知道的一件事是,当我删除:@using (Html.BeginForm("Executor", "LMC", FormMethod.Post))
并尝试将它放入Ajax它根本不起作用。我的意图是有一些像这样的东西:
<script type="text/javascript">
$("#submitButtonAjax").on("click", function () {
$.ajax({
type: 'POST',
url: "/LMC/Executor",
success: function () {
alert("Went well");
}
});
</script>
我试图将控制器方法返回到Json,但它也没有用。我会感谢任何建议,我可以阅读类似的任何东西(我知道可能有很多类似的主题,但我无法实现任何适用于我的代码的东西,因为我发现我的问题倒退了一步与其他人比较),或者这很容易,我错过了一些东西,你可以发布一个解决方案。无论如何,非常感谢您的帮助。
答案 0 :(得分:0)
ajax调用应该看起来像下面的
$( document ).ready(function() {
$("#submitButtonAjax").on("click", function () {
var postData = {
FirstPropertyOfTheModel: ValueForTheFirstProperty,
SecondPropertyOfTheModel: ValueForTheSecondProperty,
};
$.ajax({
type: 'POST',
url: "/LMC/Executor",
data:postData,
success: function () {
alert("Went well");
},
error: function () {
alert("Opssss not working");
}
});
});
});
data是控制器的ActionResult方法模型的值。 FirstPropertyOfTheModel和SecondPropertyOfTheModel将被属性名称替换,并相应地分配相应的值。在网址,你可以使用
'@Url.Action("Executor", "LMC")'
所以ajax看起来像
$( document ).ready(function() {
$("#submitButtonAjax").on("click", function () {
var postData = {
FirstPropertyOfTheModel: ValueForTheFirstProperty,
SecondPropertyOfTheModel: ValueForTheSecondProperty,
};
$.ajax({
type: 'POST',
url: '@Url.Action("Executor", "LMC")',
data:postData,
success: function () {
alert("Went well");
},
error: function () {
alert("Opssss not working");
}
});
});
});