【发布时间】:2013-05-01 20:52:27
【问题描述】:
我需要一些帮助,因为我对 AJAX 很陌生。在我拥有的给定页面(视图)中,我显示了一个显示表单的按钮。我最终想要的是将该表单中的数据输入传递给我的应用程序内的控制器。我知道有很多关于如何做到这一点的教程......但是,我似乎很难理解这是如何做到的;因此,我想一步一步地遍历这个。我只是想在用户单击对话框上的“保存”按钮后显示不同的视图。我希望这很清楚。这是我的 HTML + jQuery
@model AccommodationEditViewModel
@{
ViewBag.Title = "Edit";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<table>
<tr>
<td>
@Html.ActionLink("Back to list", "List", "Accommodation")
</td>
</tr>
<tr>
<td>
@if ( Model.Accommodation.LocaleID != Guid.Empty)
{
@Html.DisplayAccommodation(IAccommodationDisplay);
}
</td>
</tr>
</table>
<div class="genericform">
<form id="form" method="post">
@Html.AccommodationEditDisplay()
<table>
<tr>
<td>
@Html.ActionLink("Add New Address", "", "", new { id = "addaddresses" }, null)
</td>
</tr>
@if (Model != null && Model.Accommodation.Addresses.Count() == 0)
{
<tr>
<td>
This Locale Contains No Addresses
</td>
</tr>
}
else
{
foreach (Address address in Model.Accommodation.Addresses)
{
<tr>
<td>
@address.Address1
</td>
</tr>
}
}
</table>
<br /> <br />
<input type="submit" name="command" value="Save" />
<input type="submit" name="command" value="Delete" />
</form>
</div>
<button id="opener">Add Address</button>
<div id="dialog" title="Add Address" style="display:none;">
<label for="Address1">Address: </label><input id="Address1" />
<label for="Address2">Address 2: </label><input id="Address2" />
<label for="City">City: </label><input id="City" />
<label for="State">State: </label><input id="State" />
<label for="PostalCode">Postal Code: </label><input id="PostalCode" />
</div>
<script type="text/javascript" src="~/Scripts/jquery-1.7.1.js"></script>
<script type="text/javascript" src="~/Scripts/jquery-ui-1.8.20.js"></script>
<link type="text/css" href="~/Content/themes/base/jquery.ui.all.css" rel="stylesheet" />
<script type="text/javascript">
$(document).ready(function () {
$("#dialog").dialog({
autoOpen: false,
show: {
effect: "explode",
duration: 250
},
hide: {
effect: "explode",
duration: 250
},
buttons: {
"Save": {
text: "Save",
class: "",
click: function () {
//**redirect here**
$(this).dialog("close");
}},
"Cancel": {
text: "Cancel",
class: "",
click: function () {
$(this).dialog("close");
}
}},
modal: true
});
$("#opener").click(function () {
$("#dialog").dialog("open");
});
});
</script>
我尝试使用 $.ajax({}) 并设置:Url: "/Areas/Website/Controller/Action
但是脚本在那时停止工作。
任何和所有的帮助表示赞赏!谢谢!
编辑
我什至需要使用 AJAX 吗?我只想将该表单中的信息(在对话框内)传递给控制器。
【问题讨论】:
-
请提供更多关于视图的详细信息,例如 Html 表单(包括最后的输入按钮,即 type="submit" 的那个)
-
视图没有什么特别之处。我在那里有帮助显示初始表单。它与我想要完成的事情没有太大关系,即:显示对话框,填写表单,将输入的数据输入控制器,使用 ViewResult 显示该表单。这有意义吗?
-
相反,您实际上并不需要 ajax 或 jquery 等。这就是为什么我希望您向我展示您的表单,我可以为您提供将数据从表单发送到控制器的步骤.这不是很复杂。
-
给我一秒钟,我会更新它
-
我发布了一个新答案。
标签: c# javascript jquery asp.net-mvc-4 razor