我有一个删除按钮,可以调用javascript函数onclick。 函数函数触发,获取id并显示在Alert中,尝试使用window.location.href =" / Home / DeletePhoto / photoId =" + id;在HomeController中调用ActionResult。
模态弹出窗口中的按钮:
<button class="title" id="btnDelete" onclick="fDoTheDelete();">Delete</button>
视图底部的javascript函数:
function fDoTheDelete()
{
alert("in the delete function: " + document.getElementById('h3Title').innerHTML);
var id = document.getElementById('h3Title').innerHTML;
window.location.href = "http://localhost:50061/Home/DeletePhoto/photoId=" + id;
}
(如果我在javascript代码中按Ctrl +单击下面的URL,它会根据需要运行ActionResult)
window.location.href = "http://localhost:50061/Home/DeletePhoto/photoId=" + id;
这是ActionResult。我想删除一张照片及其记录并重定向到主页/索引,这将显示没有删除照片的照片。
public ActionResult DeletePhoto(int photoId)
{
//GET FILENAME FROM ID
string photoName = (from p in db.Photos
where p.PhotoId == photoId
select p.Description).FirstOrDefault();
//DELETE FILE
string fullPath = "/GalleryImages /" + photoName;
if (System.IO.File.Exists(fullPath))
{
System.IO.File.Delete(fullPath);
}
//DELETE RECORD OF PHOTO
Photo photo = db.Photos.Find(photoId);
db.Photos.Remove(photo);
db.SaveChanges();
return RedirectToAction("Index");
}
点击按钮,警报显示我在javascript函数内,并且已经传递了id,但是照片模态窗口刚刚关闭并显示相同的索引,显示图像的缩略图仍然存在。
修改 我回来编辑并添加我正在使用This image gallery的信息,这些信息非常容易配置,但很难在缩略图/索引显示和模态灯箱弹出之间传递更多内容。这就是为什么我对ActionResult的简单调用遇到了很多麻烦。有很多js / jquery / blueimp代码很难被破解。 感谢所有努力帮助我的人,我希望其他人也可以使用图片库。
答案 0 :(得分:0)
您的代码可能无法在服务器端抓住<{1}}
上的删除ID根据此answer,要求服务器删除特定资源,您的路由应该像public ActionResult DeletePhoto(int photoId)
一样处理。
应该像
一样调用
/Home/DeletePhoto/{photoId}
答案 1 :(得分:0)
首先,你应该在Razor中使用url.action而不是硬编码。你将不再有路由问题了。
@Url.Action("Information", "Admin", new { id = UrlParameter.Optional })
然后在js中使用一个方法,比如.assign(&#34; url&#34;)。
window.location.assign("
@Url.Action("Information", "Admin", new { id = UrlParameter.Optional })"
)