【发布时间】:2017-12-21 22:37:17
【问题描述】:
主视图:
使用图标对 ApplicationController 中的 AddAppForm 操作进行 ajax 调用。好像我的 ajax 调用成功了..但仍然看不到表单...想法?看起来很简单……但是……
...
...
<div id="btn_add_app" class="glyphicon glyphicon-plus btn_add_app" aria-hidden="true" style="color:forestgreen; cursor:pointer"></div>
...
...
$('.btn_add_app').click(function () {
$.ajax({
url: '/Application/AddAppForm',
contentType: 'application/html; charset=utf-8',
type: 'GET',
dataType: 'html',
success: function (result) {
alert(result);
}
});
});
应用程序控制器: 返回表格...
[HttpGet]
// empty form
public ActionResult AddAppForm()
{
Application app = new Application();
app.name = "new name";
return View(app);
}
查看:
@model Project.Models.Application
@{
ViewBag.Title = "Add Application";
}
<h2>Add Application</h2>
@using (Html.BeginForm("saveApps", "Application"))
{
<div>
<div class="form-group">
@Html.LabelFor(a => a.name)
@Html.TextBoxFor(a => a.name)
</div>
<div class="form-group">
@Html.LabelFor(a => a.description)
@Html.TextBoxFor(a => a.description)
</div>
<div class="form-group">
@Html.LabelFor(a => a.HIM)
@Html.TextBoxFor(a => a.HIM)
</div>
<button type="submit" class="btn btn-primary">Save</button>
</div>
}
【问题讨论】:
-
因为你没有对从
AddAppForm()方法返回的视图做任何事情。您需要在成功回调中更新 DOM -$(someElement).html(result)(您可以删除无意义的contentType: 'application/html; charset=utf-8',选项) -
您的警报中有结果,它显示了吗?如果是这样,则将警报替换为@StephenMuecke 描述的内容。
-
同时尝试返回部分视图结果,否则您的模板也会返回。
-
谢谢!是的,我在结果中看到了整个模板......将返回值扔进了一个 div 并出现了表单。出于某种原因,我假设如果我不返回服务器端数据,它会呈现它...#rookie
标签: c# jquery .net ajax asp.net-mvc