将第一次访问数据替换为ASP.NET MVC中用户选择的数据

时间:2017-05-18 15:22:26

标签: javascript c# asp.net-mvc asp.net-mvc-partialview

我有一个单页面应用程序,当点击一个按钮时,它会将数据库中的字符串加载到partialview中,这样可以正常工作。

查看

<div class="text-center">
    <button id="Button1" class="btn btn-warning btn-fill">Button1</button>
    <button id="Button2" class="btn btn-success btn-fill">Button2</button>
    <button id="Button3" class="btn btn-danger btn-fill">Button3</button>
</div>
<script>

    document.getElementById("Button1").onclick = function () { button1Function() };
    function button1Function() {

        $("#content").load('@Url.Action("Button1","Home")');

    }
    document.getElementById("Button2").onclick = function () { button2Function() };
    function button2Function() {

        $("#content").load('@Url.Action("Button2", "Home")');

    }
    document.getElementById("Button3").onclick = function () { button3Function() };
    function button3Function() {

        $("#content").load('@Url.Action("Button3", "Home")')

    }
</script>

但我的问题是,当用户第一次访问该页面时,他们还没有按下按钮,我希望其中有一个随机字符串,它会消失和/或被其中一个按钮点击取代。

我现在无法阻止它重复。我该怎么做?

控制器

   public ActionResult Index(int? id)
    {
        if (id == null)
        {
            var activityid = db.Activities.OrderBy(a => Guid.NewGuid()).Take(1);
            return View(activityid);
        }

        return View(db.Activities.Where(a => a.ActivityID == id));
    }

    public ActionResult Random()
    {
        return PartialView("_DisplayActivity", db.Activities.OrderBy(a => Guid.NewGuid()).Take(1));
    }

    public ActionResult Button1()
    {
        var results1 = db.GetActivity(1);
        return PartialView("_DisplayActivity", results1);
    }

    public ActionResult Button2()
    {

        var results2 = db.GetActivity(2);
        return PartialView("_DisplayActivity", results2);
    }

    public ActionResult Button3()
    {
        var results3 = db.GetActivity(3);
        return PartialView("_DisplayActivity", results3 );
    }

示例

在示例1中,这是第一次加载时页面的显示方式。第二个例子是在按下其中一个按钮后如何渲染它。

example1

example2

0 个答案:

没有答案