Как использовать jQuery AJAX для обновления ASP.NET MVC View Data? - PullRequest
0 голосов
/ 05 октября 2018

Я пробовал несколько вариантов этого, но ни один из них, кажется, не работает.Есть идеи?

Index.html:

@{
    var SWList = ViewData["SWList"] as List<Fostudio.Model.Software.Softwares>;
}

<div class="btn-group" role="group" aria-label="Basic example">
    <button type="button" class="btn btn-secondary" onclick="$.getScript('/Software/Index?SWType=文本编辑');">文本编辑</button>
</div>


<div class="row">
@{
    foreach (var item in SWList)
    {
        <div class="col-md-4" style="margin: 10px 0">
            <div class="card text-center">
                <div class="card-header">
                    @Html.DisplayFor(modelItem => item.Type)
                </div>
                <div class="card-block" style="margin: 10px 0;">
                    <h4 class="card-title" style="margin: 10px 0"> @Html.DisplayFor(modelItem => item.Name)</h4>
                    <p class="card-text" style="height: 40px;"> @Html.DisplayFor(modelItem => item.Description)</p>
                    <a href="@Html.DisplayFor(modelItem => item.URL)" class="btn btn-primary btn-sm" style="width: 150px; margin: 10px 0;">Get it</a>
                </div>
            </div>
        </div>
    }
}

<script type="text/javascript">
function ChangeSW(SWType) {
    $.ajax({
        url: '/Software/Index',
        type: 'GET',
        data: { SWType: SWType },
    });
}

SoftwareController:

public class SoftwareController : Controller
{
    private SoftwaresBLL softwareBLL = SoftwaresBLL.GetInstance();

    public ActionResult Index(string SWType = "")
    {
        if (SWType != "")
        {
            List<Softwares> SoftwaresList = softwareBLL.GetList("where Type=@0", SWType);
            ViewData["SWList"] = SoftwaresList;
            return RedirectToAction("Software", "Index");
        }
        else
        {
            List<Softwares> allSoftwaresList = softwareBLL.GetList();
            ViewData["SWList"] = allSoftwaresList;
            return View();
        }
    }
}

Я хочучтобы можно было нажать кнопку и обновить данные списка моделей, показанные на виде.Я отладил и убедился, что данные переданы, но мое мнение не обновляется.Я хотел бы знать, является ли это хорошей практикой или есть лучший способ сделать это?

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...