相关疑难解决方法(0)

从JavaScript调用ASP.NET MVC操作方法

我有这样的示例代码:

 <div class="cart">
      <a onclick="addToCart('@Model.productId');" class="button"><span>Add to Cart</span></a>
 </div>
 <div class="wishlist">
      <a onclick="addToWishList('@Model.productId');">Add to Wish List</a>
 </div>
 <div class="compare">
      <a onclick="addToCompare('@Model.productId');">Add to Compare</a>
 </div>    
Run Code Online (Sandbox Code Playgroud)

如何编写JavaScript代码来调用控制器操作方法?

javascript asp.net-mvc razor asp.net-mvc-3

62
推荐指数
7
解决办法
20万
查看次数

ajax调用后MVC3重定向到动作

在ASP.NET MVC3应用程序中,我在视图中有一个按钮.

单击该按钮时,将调用一个函数,并进行jquery ajax调用以将项目保存到数据库

    function SaveMenuItems() {
        var encodeditems = $.toJSON(ids);;
        $.ajax({
            type: 'POST',
            url: '@Url.Action("SaveItems", "Store")',
            data: 'items=' + encodeditems + '&storeKey=@Model.StoreID',
            complete: function () {
                    }
                }
            });
        }
Run Code Online (Sandbox Code Playgroud)

我想要的是将项目保存到数据库后我想重定向到另一个视图.(重定向到行动)

我怎样才能做到这一点?

我试着return RedirectToAction("Stores","Store")SaveItems函数末尾的控制器中使用.但它没有用

我也尝试添加window.location.replace("/Store/Stores");ajax调用的完整功能,但也没有工作

任何帮助是极大的赞赏

非常感谢

jquery redirect asp.net-mvc-3

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

ajax调用返回值和我的html页面

我目前正在使用以下代码对我的控制器执行ajax调用:

$.ajax({
    type: "POST",
    url: "@Url.Action("uploadImage", "Item")",
    data: '{ "imageData" : "' + image + '" }',
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (success) {
        alert('Success ' + success.responseText);
    },
    error: function (response) {
        alert(response.responseText);
    }
});
Run Code Online (Sandbox Code Playgroud)

这是控制器:

[HttpPost]
public ActionResult uploadImage(string imageData)
{
    string imageName = Guid.NewGuid().ToString();

    try
    {
        ProductManager pm = new ProductManager();
        pm.AddNewProduct(imageName);
    }catch(Exception e)
    {
        writeToLog(e);
    }
    return Json(new { success = imageName }, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)

它到达控制器并且AddNewProduct函数成功运行.问题是我希望它返回在控制器中创建的图像名称.这也可以,但是它也会返回我完整的html页面.我在成功时发出警告,并在发生错误时发生错误,但不知怎的,它总是在错误中出现以下警告:

在此输入图像描述

它显示了我需要的价值,但为什么它也会返回我的完整HTML?

html javascript c# ajax jquery

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

AJAX Post to ASP.NET MVC 6 Controller操作方法和参数为null

我在ASP.NET MVC和发送AJAX帖子时遇到了一个奇怪的问题.我在页面上有一个id为'lnkGetExpirDates'的锚标记.当用户点击它时,我试图简单地将这个硬编码数据发送到我的控制器,这样它就可以将它作为参数使用并将结果返回给页面.

但是,在控制器中,参数始终为空/默认值.请参阅下面的代码,如果我犯了一个愚蠢的错误,请告诉我.

这是我的AJAX帖子:

$("#lnkGetExpirDates").click(function () {
    e.preventDefault();

    var data = {
        StartDate: "1/19/2016",
        EndDate: "4/19/2016",
        ProductType: "New",
        Count: 1
    };


    $.ajax({
        url: '/Products/GetExpirationDates',
        type: 'POST',
        data: JSON.stringify(data),
        contentType: 'application/json; charset=utf-8',
        dataType: 'html',
        success: function (data) {
            $('#ExpirationDates').val(data);
        }
    });

});
Run Code Online (Sandbox Code Playgroud)

这是我的控制器的动作方法:

// POST: Product/GetExpirationDates
[HttpPost]
//[ValidateAntiForgeryToken]
public IActionResult GetExpirationDates(GetExpirationDatesViewModel vm)
{
    // TODO: Get expiration dates and return them in the response

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

这是GetExpirationDatesViewModel:

public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; …
Run Code Online (Sandbox Code Playgroud)

asp.net ajax asp.net-mvc jquery asp.net-core-mvc

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

使用ASP.NET Core 2 MVC访问Javascript中的配置设置

我目前正在使用ASP.NET Core 2和Bootstrap构建一个简单的网站。该站点将部署到暂存和生产环境中,因此我希望能够使用可以在Azure中设置的配置键/值对来配置某些设置。我也希望这些值可以在Javascript中使用。

感谢这篇有用的博客文章,我已经找到了如何创建AppSettings类并填充它的方法。这篇文章还介绍了使用依赖注入从RazorPage模型访问AppSettings。

我的appsettings.json文件

{
    "AppSettings": {
        "TestProperty": "Test_Property"
    },
    "Logging": {
        "IncludeScopes": false,
        "LogLevel": {
            "Default": "Warning"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

自动绑定我在Startup.cs中的AppSettings类

services.Configure<AppSettings>(Configuration.GetSection(nameOf(AppSettings)));
Run Code Online (Sandbox Code Playgroud)

通过依赖项注入访问设置:

public class HomeModel : PageModel
{
    private readonly AppSettings _appSettings;

    public string TestProperty {get; set;}

    public HomeModel(IOptions<AppSettings> appSettings)
    {
        _appSettings = appSettings.Value;
    }

    public IActionResult Index()
    {
        TestProperty = _appSettings.TestProperty;

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

然后,在要在javascript中使用此属性的页面上,执行以下操作以创建具有以下设置的javascript属性:

<script type="text/javascript">
  var testProperty = '@Model.TestProperty';
</script>
Run Code Online (Sandbox Code Playgroud)

这可以工作,但理想情况下,我不需要配置每个页面以使用此依赖项注入并TestProperty在每个页面上公开我的代码。我希望能够将上面的代码放到其中,以_Layout.cshtml呈现每个页面的正文(或其他适当位置)的方式,这样我可以创建一个javascript变量供每个页面使用。

我曾考虑过使用BaseViewModel继承所有页面的模型,但是对此进行试验并没有带来任何有用的结果(只是一个例外)。

您将如何通过只能配置一次的配置设置创建javascript属性?

asp.net razor asp.net-core-mvc asp.net-core

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

Ajax调用MVC Controller返回"NOT FOUND"

我试图用AJAX调用MVC Controller动作传递一些参数.
我有时在这个应用程序中这样做,它工作正常.
我不知道为什么只有这一个不起作用.

 function excluirDetalhe(button, tab) {
     var index = $(button).closest('tr').index();
     var myTable = document.getElementById(tab);
     var id = myTable.rows[index].cells[0].innerHTML.trim();
     $('#' + tab + ' tr:eq(' + index + ')').remove();
         $.ajax({                
             traditional: true,
             url: "entidades/gravaCookie",
             type: 'post',
             data: { id: id, detalhe: "E" },
             error: function (jqXHR, textStatus, errorThrown) {
                 alert(errorThrown);
             }
     });
 }
Run Code Online (Sandbox Code Playgroud)

这是我的控制器方法:

public void gravaCookie(string id, string detalhe)
{
     string key = "een_id";
     if (detalhe.Equals("E"))
         key = "een_id";
     if (detalhe.Equals("C"))
         key = "eco_id"; …
Run Code Online (Sandbox Code Playgroud)

ajax asp.net-mvc jquery

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

调用ajax mvc4 c的绝对路径

我在mvc 4实体框架中有一个项目,并使用ajax调用控制器方法.我的问题是当我使用我的app本地时,url是"控制器/方法"但是当我发布时我必须将URL更改为" http:// domain/appName/Controller/Method "

我该怎么做才能获得ajax url的绝对路径?我的ajax是在js文件上,我不能使用像html.actionlink这样的函数

例:

$("#btnAnswer").click(function () {

            $.ajax({

                url: "http://domain/appName/Controller/method/",
                //url: "/Controller/method/",
                data: { answer: $("#answer").val(), question_id: $("#question_id").val(), answer_id: $("#answer_id").val() },
                success: function (result) {
                    alert(result);

                }

            }).error(function () {

            }).fail(function () {

            });

    });
Run Code Online (Sandbox Code Playgroud)

c# ajax entity-framework razor asp.net-mvc-4

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