jquery - 每次用户单击时在部分 View 上呈现不同的内容

标签 jquery asp.net-mvc partial-views asp.net-core-2.0 url.action

我知道如何使用 jquery 渲染部分 View 。

现在,我尝试在每次用户单击时在同一个 div 元素中呈现不同的内容(使用部分 View )。

我的家庭 Controller 中有一个方法

public IActionResult Details(int x)
        {

            Blog A = new Blog() { Id = 1};    
            Blog B = new Blog() { Id = 2};

            if (B.Id == x)
               return PartialView("_blogPartial", B);

      return PartialView("_blogPartial", A);

        }

我在点击时渲染此部分 View 。

$(document).ready(function(){

// For button 1

    $("button1").click(function () {
        $("#partial").load('@Url.Action("Details", new { x = 1})');
    });

 // For button 2
    $("#button2").click(function () {

        $("#partial").load('@Url.Action("Details",new { x=2})');
    });
});

下面是两个按钮。

<button id="button1">BlogA</button>
<button id="button2">BlogB</button>
<div id="partial">

</div>

问题:如果有“n”个按钮,我必须为每个按钮编写“n”次点击函数。有什么方法可以将我的按钮ID传递给Url.Action()方法,该方法会将其传递给Details方法。

我需要做类似的事情

$("button").click(function () {
        $("#partial").load('@Url.Action("Details", new { x = buttonid })');
    });

最佳答案

id属性相比,使用data-属性更合适,然后使用类名,这样就只需要一个脚本

<button data-id="1" class="blog" type="button">BlogA</button>
<button data-id="2" class="blog" type="button">BlogB</button>

var url = '@Url.Action("Details")';
var partial = $('#partial'); //cache it
$('.blog').click(function() {
    var id = $(this).data('id');
    partial.load(url, { x: id });
});

关于jquery - 每次用户单击时在部分 View 上呈现不同的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46295650/

相关文章:

jQuery、.empty() 和内存

ruby-on-rails - 如何使部分代码仅针对特定集合显示

ruby-on-rails - Jbuilder 中的 partial 不适用于关联

javascript - 将 jQuery 中的 HTML 复制到 BootStrap Modal 中

使用其他脚本时,Javascript 保持默认

javascript - 创建介绍页面 MVC

c# - JSON.stringify() ModelBinding 返回空模型

javascript - AJAX 成功 (ASP.NET MVC) 上的关闭模式

asp.net - 从 JQuery 加载部分 View 未显示在 MVC 中

javascript - 动态添加表格内的点击事件