Ajax MVC3使用数据剃须刀重新加载页面的一部分
我有一个表,其中包含我的基本数据和3个按钮,用于删除、创建和更新,这些按钮返回PartialView 单击相应对话框(删除、更新,…)中的“提交”按钮后,我想用数据更新我的页面部分 最简单的方法是什么 这就是我现在得到的 我将只添加,删除基本相同Ajax MVC3使用数据剃须刀重新加载页面的一部分,ajax,asp.net-mvc-3,razor,reload,Ajax,Asp.net Mvc 3,Razor,Reload,我有一个表,其中包含我的基本数据和3个按钮,用于删除、创建和更新,这些按钮返回PartialView 单击相应对话框(删除、更新,…)中的“提交”按钮后,我想用数据更新我的页面部分 最简单的方法是什么 这就是我现在得到的 我将只添加,删除基本相同 <div id="delete-dialog" title="Delete Product"></div> <script type="text/javascript" > $(".deleteLink").b
<div id="delete-dialog" title="Delete Product"></div>
<script type="text/javascript" >
$(".deleteLink").button();
var deleteLinkObj;
// delete Link
$('.deleteLink').click(function () {
deleteLinkObj = $(this);
var name = $(this).parent().parent().find('td :first').html();
$('#delete-dialog').html('<p>Do you want delete ' + name + ' ?</p>');
//for future use
$('#delete-dialog').dialog('open');
return false; // prevents the default behaviour
});
$('#delete-dialog').dialog({
dialogClass: "ConfirmBox",
autoOpen: false, width: 400, resizable: false, modal: true, //Dialog options
buttons: {
"Continue": function () {
$.post(deleteLinkObj[0].href, function (data) { //Post to action
if (data == '<%= Boolean.TrueString %>') {
deleteLinkObj.closest("tr").hide('fast'); //Hide Row
}
else {
}
});
$(this).dialog("close");
},
"Cancel": function () {
$(this).dialog("close");
}
}
});
</script>
$(“.deleteLink”).button();
var-deleteLinkObj;
//删除链接
$('.deleteLink')。单击(函数(){
deleteLinkObj=$(此项);
var name=$(this.parent().parent().find('td:first').html();
$(“#删除对话框”).html(“是否要删除“+name+”?”);
//供将来使用
$(“#删除对话框”)。对话框(“打开”);
return false;//防止默认行为
});
$(“#删除对话框”)。对话框({
dialogClass:“ConfirmBox”,
自动打开:false,宽度:400,可调整大小:false,模式:true,//对话框选项
按钮:{
“继续”:函数(){
$.post(deleteLinkObj[0].href,函数(数据){//post to action
如果(数据=“”){
deleteLinkObj.closest(“tr”).hide(“fast”);//隐藏行
}
否则{
}
});
$(此).dialog(“关闭”);
},
“取消”:函数(){
$(此).dialog(“关闭”);
}
}
});
在对话框关闭后,我想重新加载页面的一部分
数据看起来像
<table>
<tr>
<th> Name </th>
<th> Date </th>
<th> </th>
</tr>
@foreach (var m in this.Model)
{
<tr>
<td>
<div class="ProductName">@Html.DisplayFor(Model => m.Name)</div>
</td>
<td>
@Convert.ToDateTime(m.AddDate).ToShortDateString()
</td>
<td>
<div class="ProductPrice">@string.Format("{0:C}", m.Price)</div>
</td>
<td>
<div class="CategoryName">@Html.DisplayFor(Model => m.CategoryName)</div>
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id = m.ID }, new { @class = "editLink" })
@Html.ActionLink("Delete", "Delete", new { id = m.ID }, new { @class = "deleteLink" })
</td>
</tr>
}
</table>
名称
日期
@foreach(此.Model中的var m)
{
@DisplayFor(Model=>m.Name)
@Convert.ToDateTime(m.AddDate).toSortDateString()
@格式(“{0:C}”,m.Price)
@DisplayFor(Model=>m.CategoryName)
@ActionLink(“编辑”,“编辑”,新的{id=m.id},新的{@class=“editLink”})
@ActionLink(“Delete”,“Delete”,new{id=m.id},new{@class=“deleteLink”})
}
我不确定我是否做得很好
我试图在单击按钮后执行此操作,但请确定是否正确
我将索引更改为局部视图
buttons: {
"Continue": function () {
$.post(deleteLinkObj[0].href, function (data) { //Post to action
if (data == '<%= Boolean.TrueString %>') {
deleteLinkObj.closest("tr").hide('fast'); //Hide Row
}
else {
}
});
$.ajax.ActionLink("Index",
"Index", // <-- ActionMethod
"Shop", // <-- Controller Name.
new { }, // <-- Route arguments.
null // <-- htmlArguments .. which are none. Y
)
$(this).dialog("close");
},
"Cancel": function () {
$(this).dialog("close");
}
}
按钮:{
“继续”:函数(){
$.post(deleteLinkObj[0].href,函数(数据){//post to action
如果(数据=“”){
deleteLinkObj.closest(“tr”).hide(“fast”);//隐藏行
}
否则{
}
});
$.ajax.ActionLink(“索引”,
“Index”,//我建议您在.cshtml文件中使用ASP.NET MVC ActionLink帮助程序,而不是jQuery:
[...]
<script type="text/JavaScript">
function openPopup()
{
// Set your options as needed.
$("#yourPopupDialogId").dialog("open");
}
</script>
[...]
@Ajax.ActionLink(
"Delete",
"Delete",
"Controller",
new { someValue = 123 },
new AjaxOptions
{
// Set your options as needed
HttpMethod = "GET",
UpdateTargetId = "yourPopupDialogId",
OnSuccess = "openPopup()"
}
)
[...]
<div id="yourPopupDialogId" style="display: none;"></div>
我建议您在.cshtml文件中使用ASP.NET MVC ActionLink帮助程序,而不是jQuery:
[...]
<script type="text/JavaScript">
function openPopup()
{
// Set your options as needed.
$("#yourPopupDialogId").dialog("open");
}
</script>
[...]
@Ajax.ActionLink(
"Delete",
"Delete",
"Controller",
new { someValue = 123 },
new AjaxOptions
{
// Set your options as needed
HttpMethod = "GET",
UpdateTargetId = "yourPopupDialogId",
OnSuccess = "openPopup()"
}
)
[...]
<div id="yourPopupDialogId" style="display: none;"></div>
请展示到目前为止你所掌握的知识,并尝试使用正确的拼写和标点符号,你的问题很难理解。如果你想更改页面的某些部分,你应该查看Ajax.ActionLink
和PartialView
的文档。好吧,我想我的索引应该像其他索引一样是部分视图,然后我使用ActionLinkanks我想我会找到正确的答案:POk我试图使用这个actionLink,但不确定是否正确请查看主题的最后一部分,请展示您到目前为止的成果,并尝试使用正确的拼写和标点符号,您的问题很难理解。您应该查看Ajax.actionLink
和PartialVi的文档ew
如果您想更改页面的某些部分。好吧,我想我的索引应该是像其他部分一样的局部视图,然后我使用actionLink谢谢,我想我会找到正确的:POk我试图使用此actionLink,但不确定是否有好的方法请查看主题的最后部分