标签: actionmethod

导航到新页面/操作方法时的MVC 3 Ajax加载图标

我一直在广泛搜索如何创建导航链接,当使用Razor视图引擎在MVC 3中运行action方法时,该链接将显示ajax Loading图标.虽然我发现了大量有关添加加载图标的信息,但所有这些信息似乎都与在当前视图中发布数据有关.

我有一个简单的菜单页面,其中包含动作链接,可以在其他页面上调用操作方法,从而呈现视图.下面显示了转到OrdersController和Index操作方法的示例.

Menu.cshtml

@Html.ActionLink("Orders", "Index", "Orders",null,new { id = "OrderLink" })<br />
Run Code Online (Sandbox Code Playgroud)

我试图修改上面的链接,以便在处理索引操作时和返回视图之前,显示ajax加载图标.

我创建了一个包含加载图标的div,并将其放在我的共享_Layout.cshtml页面中.

_Layout.cshtml

<div id="ajaxLoaderDiv" style="position:fixed; top:40%; left:45%; z-index:1234; display:none;">
    <img src="@Url.Content("~/Images/AjaxLoaderImg.gif")" alt="Loading..."class="ajax-loader" />
</div>
Run Code Online (Sandbox Code Playgroud)

为了尝试显示ajax加载图标,我尝试将链接更改为Ajax ActionLink.

Menu.cshtml

@Ajax.ActionLink("Orders", "Index", "Orders", new AjaxOptions { LoadingElementId="ajaxLoaderDiv" });<br />
Run Code Online (Sandbox Code Playgroud)

这是因为它显示ajax Loading图标几秒钟.我甚至可以在OrdersController的Index动作方法中放置一个断点,它会点击它.但是当Action Method完成时,Orders\Index.cshtml永远不会呈现给页面.我只是留在Menu\Index.cshtml页面上.

我知道Orders/Index.cshtml应该呈现一个视图.

OrdersController.cs

public ActionResult Index()
{
    ....

return View(OrdersViewModel);
}
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?此视图是否返回到我的ajax调用而不是渲染?我该如何获得此功能?

如果我以错误的方式解决这个问题,请告诉我.

在发出请求时,我应该在目标页面的操作方法中而不是在链接上执行此操作吗?也许通过在我请求的索引操作方法中显示加载图标作为第一行代码,并在返回视图之前再次隐藏它?

我想尝试通过JQuery Show/hide组合来做到这一点?

<script type="text/javascript">
    function showLoadingSpinner() {
        $("#ajaxLoaderDiv").show();
    };
    function hideLoadingSpinner() {
        $("#ajaxLoaderDiv").hide();
    };

</script>
Run Code Online (Sandbox Code Playgroud)

在此先感谢并提供所有帮助和建议

乍得

asp.net-mvc jquery actionlink actionmethod

3
推荐指数
1
解决办法
7361
查看次数

如何从action方法触发mailto urls

我是MVC的初学者.我想在MVC中开发一个激活的动作方法Mailto:?body=body goes here.&subject=test subject,因此默认的邮件客户端将自动为用户填充电子邮件.现在我有List<String>哪些包含mailto:网址.

如果您有任何经验或演示代码,请对我有所帮助.提前致谢.

javascript mailto actionmethod window.location

2
推荐指数
1
解决办法
1万
查看次数

mvc 操作方法中泛型类型参数的 dot net core 自定义模型绑定

我正在构建一个简单的搜索、排序、页面功能。我附上了下面的代码。以下是用例:

  1. 我的目标是通过每个请求传递“当前过滤器”以保留它们,特别是在排序和分页时。

  2. 我不想用许多(如果不是太多)参数污染我的操作方法,而是考虑使用保存当前过滤器的通用类型参数。

  3. 我需要一个能够实现此目的的自定义模型绑定器。

有人可以发布一个示例实现吗?

PS:我也在探索替代方案,而不是来回传递复杂的对象。但我需要将此路线作为最后的手段,并且我找不到自定义模型绑定泛型类型参数的好示例。任何指向此类示例的指针也会有所帮助。谢谢!。

public async Task<IActionResult> Index(SearchSortPage<ProductSearchParamsVm> currentFilters, string sortField, int? page)
{
    var currentSort = currentFilters.Sort;
    // pass the current sort and sortField to determine the new sort & direction
    currentFilters.Sort = SortUtility.DetermineSortAndDirection(sortField, currentSort);
    currentFilters.Page = page ?? 1;

    ViewData["CurrentFilters"] = currentFilters;

    var bm = await ProductsProcessor.GetPaginatedAsync(currentFilters);

    var vm = AutoMapper.Map<PaginatedResult<ProductBm>, PaginatedResult<ProductVm>>(bm);

    return View(vm);
}

public class SearchSortPage<T> where T : class
{
    public T Search { get; set; }
    public Sort Sort { get; set; …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc generic-type-argument actionmethod custom-model-binder asp.net-core

2
推荐指数
1
解决办法
3064
查看次数

通过链接生成 CSV 文档

我在页面上有一个链接,我希望在用户单击链接时出现“打开或保存 csv 文件”对话框。该链接指向一个操作方法,在该方法中我生成一个表示有效 CSV 输出的字符串。我唯一不知道该怎么做的是输出一个用户可以打开或保存的文件。我想我可能需要做一些关于更改 http 标头或类似事情的事情,但我不太确定。

请帮忙。周五晚上是否在合理的时间回家会有所不同。;-)

c# csv download actionmethod asp.net-mvc-3

1
推荐指数
1
解决办法
2531
查看次数

如何将对象列表而不是一个对象传递给POST操作方法

我有以下GET和POST操作方法: -

public ActionResult Create(int visitid)
{
    VisitLabResult vlr = new VisitLabResult();
    vlr.DateTaken = DateTime.Now;
    ViewBag.LabTestID = new SelectList(repository.FindAllLabTest(), "LabTestID", "Description");

    return View();
} 

//
// POST: /VisitLabResult/Create

[HttpPost]
public ActionResult Create(VisitLabResult visitlabresult, int visitid)
{
    try
    {
        if (ModelState.IsValid)
        {
            visitlabresult.VisitID = visitid;
            repository.AddVisitLabResult(visitlabresult);
            repository.Save();
            return RedirectToAction("Edit", "Visit", new { id = visitid });
        }
    }
    catch (DbUpdateException) {

        ModelState.AddModelError(string.Empty, "The Same test Type might have been already created,, go back to the Visit page to see the avilalbe …
Run Code Online (Sandbox Code Playgroud)

actionmethod asp.net-mvc-3

0
推荐指数
1
解决办法
7612
查看次数