2 dnvflf226 DnvFlf226 于 2016.09.24 11:10 提问

求助:razorv3 cshtml 动态加载 div 的问题

manager.cshtml

@{
    <script type="text/javascript" src="~/Scripts/jquery.js"></script>

    Layout = "~/_SiteLayout.cshtml";
    Page.Title = "main";

    <script type="text/javascript">
        $(document).ready(function () {
            // 每次页面打开时都已经过载过内容,只是页面上不显示
            $("#btnQaus").click(function () {
                $("div#qaus").show();
                $("div#qser").hide();
            });
            $("#btnQser").click(function () {
                $("div#qaus").hide();
                $("div#qser").show();
            });
            $("#btnQser2").click(function () {
                alert('data');
                // **_问题一:想在这里实现动态加载 qser.cshtml_**
                $("div#result").Load("qser.cshtml");
            });
        });
    </script>
}

<hgroup class="title">
    <h1>@Page.Title</h1>
</hgroup>

<table>
    <tr>
        <td>
            <input type="button" id="btnQaus" value="qaus" />
            <input type="button" id="btnQser" value="qser" />
            <input type="button" id="btnQser2" value="qser2" />
        </td>
    </tr>
    <tr>
        <td>
            <div id="qaus" style="display:none">
                @RenderPage("~/Account/qaus.cshtml")
            </div>
            <div id="qser" style="display:none">
                @RenderPage("~/Account/qser.cshtml")
            </div>
            <div id="result">

            </div>
        </td>
    </tr>
</table>

qser.cshtml

@{
    Page.Title = "qser";
    var msg = "";
    var mid = "";
    Array arylist = null;
    if (IsPost) {
        // **_问题二:每次查询的时候,都会把 <manager.cshtml> 一起刷新!这里不知道怎么解决_**
        mid = Request.Form["mid"];
        DBOC dboc = new DBOC();
        arylist = dboc.GetQserById(mid);
    }
}

<form method="post">
    <input type="text" id="mid" name="mid" value="@mid" />
    <input type="submit" id="submit" name="submit" value="GO" />

    <table id="blocks" style="width:600px">
        <thead>
            <tr>
                <th>会员ID</th>
            </tr>
        </thead>
        <tbody>
            @try
            {
                if (arylist != null)
                {
                    foreach (var ary in arylist)
                    {
                        ConstantsClass.QSER qser = (ConstantsClass.QSER)ary;
                <tr>
                    <td>@qser.Mid</td>
                </tr>
                    }
                }
            }
            catch (Exception e)
            {
                msg = e.ToString();
            }
        </tbody>
    </table>
    @msg
</form>

DBOC.cs

public ArrayList GetQserById(string mid) {
        string sql = string.Format(
            "SELECT * FROM QSER WHERE SERMID = '%{0}%'",
            mid);
        SqlConnection sqlcnn = new SqlConnection(connstr);
        SqlCommand sqlcmm = sqlcnn.CreateCommand();
        sqlcmm.CommandText = sql;

        ArrayList arylist = new ArrayList();
        // 用户信息ENTITY
        ConstantsClass.QSER qser = new ConstantsClass.QSER();

        sqlcnn.Open();
        SqlDataReader reader = sqlcmm.ExecuteReader();
        if (reader != null)
        {
            while (reader.Read())
            {
                // 会员ID
                qser.Cstmid = reader["SERMID"].ToString();
                arylist.Add(qser);
            }
        }
        return arylist;
}

刚开始用 vs2015 razor v3 做东西,感觉新颖却又乱七八糟的

在这里先谢过了(好久没来了,都不知道“C币”去哪了,自己汗下)

3个回答

showbo
showbo   Ds   Rxr 2016.09.24 12:32
已采纳

$("div#result").Load("qser.cshtml");
===>注意大小写
$("div#result").load("qser.cshtml");

DnvFlf226
DnvFlf226   2016.09.24 12:52

谢谢楼上

代码里是小写的。。

我又尝试了下,问题一的动态加载,问题应该出在引用的 js 版本或者是被加载文件的路径上。

现在已经可以正确加载了。

问题二还在研究中。。。

DnvFlf226
DnvFlf226   2016.09.24 13:04

问题二使用 iframe 到是可以解决。。但是总想找找其他的方法~

Csdn user default icon
上传中...
上传图片
插入图片