Solution C # MVC does not execute JavaScript in IIS

0

I have a C # solution where I use MVC. In it I have a View for inclusion of product items. In this view I have a DropList as specified below:

Drop List

    <div class="form-group">
    @Html.LabelFor(model => model.ProdutoId, "Produto", htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.DropDownList("ProdutoId", null, String.Empty, htmlAttributes: new { @class = "form-control", onchange = "PesquisaProduto(value)" })
        @Html.ValidationMessageFor(model => model.ProdutoId, "", new { @class = "text-danger" })
    </div>
</div>

I use a JavaScript to access an Action in the Controller in order to fill in a text with the sales value of the selected product when selecting a product. Below the script:

Script:

<script type="text/javascript">
    function PesquisaProduto(codigoProdutoId) {
        var url = "/ItemPedidoes/DadosProdutos/" + codigoProdutoId;
        $.get(url, null, function (data) {
            $("#ValorUnitario").val(data);
        })
    }

Controller:

public decimal DadosProdutos(int? id)
{
    decimal _return = 0;
    if (id == null) {
        _return = 0;
    } else
    {
        var produtoSelecao = db.Produtos.Find(id);

        if (produtoSelecao.PrecoVenda == null || produtoSelecao.PrecoVenda == 0)
        {
            _return = 0;
        }
        else
        {
            _return = (decimal)produtoSelecao.PrecoVenda;
        }

    }
    return _return;
}

It happens that in tests, running in Visual Studio, everything works perfectly, except that when installing in IIS the script does not work. It does not fill in the value, as if the script was in error ..

Would anyone know if there are any settings in IIS that should be changed?

My version of IIS is 10.0.14393.0 and it squeezes into a windows 10 machine.

    
asked by anonymous 11.10.2017 / 19:26

2 answers

2

Based on the friend's @Linq hint, I checked the IIS log and found the following line there:

2017-10-11 17:13:16 ::1 GET /Loja4/ItemPedidoes/Create/~/ItemPedidoes/DadosProdutos/1 - 80 - ::1 Mozilla/5.0+(Windows+NT+10.0;+WOW64;+rv:56.0)+Gecko/20100101+Firefox/56.0 http://localhost/Loja4/ItemPedidoes/Create/3 404 0 2 5

That is, the URL returned 404 on the server and for the URL to be correctly passed in GET I needed to change the "mount" of it.

Below is the script:

<script type="text/javascript">
    function PesquisaProduto(codigoProdutoId) {
        var url = "/../../ItemPedidoes/DadosProdutos/" + codigoProdutoId;
        $.get(url, null, function (data) {
            $("#ValorUnitario").val(data);
        })
    }
    
11.10.2017 / 20:21
0

Change the script call to:

<script type="text/javascript">
    function PesquisaProduto(codigoProdutoId) {
        var url = "@Url.Action("DadosProdutos")/" + codigoProdutoId;
        $.get(url, null, function (data) {
            $("#ValorUnitario").val(data);
        })
    }
    
19.07.2018 / 00:07