0

我在 mvc 中处理一个项目,我尝试做的是在鼠标悬停时使用 Ajax 函数从我的数据库中获取信息。

我添加了一个控制器操作和一个视图来呈现结果。

但没有任何工作。

我尝试了很多东西,但我不明白问题出在哪里,因为什么也没发生。

这是我第一次使用ajax函数,所以我是新手..

希望每个人都可以帮我解决这个问题。

这是我的代码:

阿贾克斯:

 $("#mybutton").mouseover(function () {
        $.ajax({
            url: "@Url.Action(“MyAction”,”MyController”)", 
            success: function (result) {
                $("#InformationBox").html(result); /*<--div id where the results are showing*/
            }
        });
    });

主视图:

<form action="@Url.Action("MyPostAction", "MyController")" method="post">
                      <button type="submit" name="submit" id="mybutton">
                      </button>                     
                      <input type="hidden" name="Id_Hidden" value="1" id="AjaxSendId"/>
                  </form>

控制器:

[ChildActionOnly]
        public ActionResult PartialViewExample(FormCollection formcollection) 
        {
            var id_option = formcollection["Id_Hidden"];

            SqlConnection cn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);
            StringBuilder sb = new StringBuilder();
            cn.Open();
            sb.AppendLine("Select Id From Table1 ");
            sb.AppendLine("WHERE Id='" + id_option + "'");

            SqlDataReader sqlDataReader = new SqlCommand(sb.ToString(), cn).ExecuteReader();

            while (sqlDataReader.Read())
            {
                if (!sqlDataReader.IsDBNull(1))
                {
                    object value = sqlDataReader[1];
                    infolist(new Table1()
                    {
                        Name = value.ToString(),
                    });
                }
            }

            cn.Close();
            cn.Dispose();
            sqlDataReader.Dispose();

            ViewBag.Options = infolist

            return View("HintExampleView_Layout");
    }

HintExampleView_Layout(渲染结果但显示在 MainView 中):

<div id="InformationBox">
    @foreach (var p in ViewBag.Options)
    {
        @p.Step2Name
        @p.IconHover 
    }
</div>
4

2 回答 2

1

主视图:

<form action="@Url.Action("PartialViewExample", "MyController")" method="post">
    <button type="submit" name="submit" id="mybutton">
    </button>                     
    <input type="hidden" name="Id_Hidden" value="1" id="AjaxSendId"/>
</form>
<div id="InformationBox">&nbsp;</div>

控制器:

return PartialView("HintExampleView_Layout");

阿贾克斯:

$(document).ready(function {     
    $("#mybutton").mouseover(function () {
        alert("Mouseover Test"); /* <- Remove me if working */
        $.ajax({
            url: "@Url.Action("MyAction","MyController")", 
            success: function (result) {
                $("#InformationBox").html(result); /*<--div id where the results are showing*/
            }
        });
    });
});
于 2013-10-14T10:34:40.727 回答
0

嗯,你的 URL 不好(如果你不在 cshtml 文件中),你在客户端不要忘记:

 $("#mybutton").mouseover(function () {
        $.ajax({
            **url: "@Url.Action(“MyAction”,”MyController”)",** 
            success: function (result) {
                $("#InformationBox").html(result); /*<--div id where the results are showing*/
            }
        });
    });
于 2013-10-14T10:07:40.720 回答