将HTML图像更改为用于部分刷新页面的按钮
本文关键字:刷新 按钮 用于部 图像 HTML | 更新日期: 2023-09-27 18:29:44
我是网页设计和MVC的新手。我有一个aspx页面和一个html图片。我想更改此图像并使其可单击,以便在单击时只刷新页面的下半部分。我设置我的图像,以便控制器更新图像的源。通过使用以下
src="<%=ViewData["BookImg"] %>"
这样整个故事就清楚了。当一个人点击这本书的图像时,它会在页面的下半部分显示从sql数据库中提取的关于这本书信息。我想我需要考虑实现ajax,这样我就可以进行部分页面更新。但问题是如何将HTML图像更改为按钮。提前谢谢。
---根据所选答案进行更新,但仍有问题---home.aspx
<% Html.RenderPartial("HomePartialView"); %>
<img id = "Book_Img" src="<%=ViewData["BookImg"] %>" alt = "click Me" class="imgClick"/>
<script src="../../Scripts/jquery-1.5.1.js" type="text/javascript">
$(document).ready(function(){
$(".imgClick").click(function () {
$("#HomePartialView").load("@Url.Action("PartialViewBook","HomeController")");
});
});
</script>
---HomeController.cs
public ActionResult PartialViewBook()
{
ViewData[imageBookPressd] = "hello world";
return View("HomePartialView");
}
---更新我仍然有问题。我的控制器文件位于标准MVC模型中的Controllers/HomeController.cs中。我的Home.aspx页面位于Views/Home/Home.aspx中。我没有收到任何错误,也不知道如何在脚本上调试。。
如果你只是想让图像在点击时调用一些javascript,那么你可以使用以下方法:
<img src="<%=ViewData["BookImg"] %>" onclick="doSomething();"/>
但是,如果您希望图像是表单的"提交"按钮,则需要将图像更改为"图像"类型的"输入",如以下链接所述:
<input type="image" src="<%=ViewData["BookImg"] %>" alt="Submit button">
这里有更多信息:http://www.webdevelopersnotes.com/tips/html/using_an_image_as_a_submit_button.php3
您不需要将其转换为按钮。您可以在onclick的图像上绑定一个函数来进行部分页面更新
假设您有这样一个图像的HTML标记,其中div将用部分内容重新加载
<img src="someimage.gif" id="imgReloader" />
<div id="divPartial" ></div>
有这个脚本
$(function(){
$("#imgReloader").click(function(){
$("#divPartial").load("yourcontroller/youraction");
});
});
现在,当用户点击图像时,它将调用yourcontroller
中的youraction
方法,并将结果加载到id为divPartial
的div中
编辑:根据评论,
如果您想在多个按钮中执行此操作,则不能使用ID选择器,因为它的ID对于元素来说是(并且应该是)唯一的。您可以为所有这些元素提供一个css类,并使用它进行访问。
<img src="someimage.gif" id="imgReloader1" class="imgClick" />
<img src="anotherimage.gif" id="imgReloader2" class="imgClick" />
现在更改您的脚本以使用类选择器
$(function(){
$(".imgClick").click(function(){
$("#divPartial").load("yourcontroller/youraction");
});
});
http://api.jquery.com/class-selector/
编辑:要避免路径问题,请始终使用Url.Action HTML Helper方法,而不是硬编码
$("#divPartial").load('@Url.Action("youraction","yourcontroller")');