Проблема с точечной точкой при сохранении MVC 5 - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть этот элемент модели для изменения и сохранения в MVC 5. (.NET Framework 4.6.1)

@using (Ajax.BeginForm("Edit", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "wrapperViews" }))
    {
        @Html.AntiForgeryToken()

    <div class="form-horizontal">
        <h4>EQUIPMENT - @ViewBag.EQP_ID</h4>
        <hr />
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })
        @Html.HiddenFor(model => model.ID)
        @Html.HiddenFor(model => model.OPERATIONID)

        <div class="form-group">
            @Html.LabelFor(model => model.DESCRIPTION, htmlAttributes: new { @class = "control-label col-md-4" })
            <div class="col-md-8">
                @Html.EditorFor(model => model.DESCRIPTION, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.DESCRIPTION, "", new { @class = "text-danger" })
            </div>
        </div>



        <div class="form-group">
            @Html.LabelFor(model => model.TYPE, htmlAttributes: new { @class = "control-label col-md-4" })
            <div class="col-md-8">
                @Html.DropDownListFor(model => model.TYPE,
                       new SelectList(Model.EquipmentTypes, "CodeType", "DescriptionType"),"", new { @class = "form-control" })
                @Html.ValidationMessageFor(model => model.TYPE, "", new { @class = "text-danger" })
            </div>
        </div>
        <div class="form-group">
            <div style="width:500px;margin-top:15px">
                <div style="width:120px; float:left;margin-left:30px">
                    <input type="submit" value="Save" class="btn btn" />
                </div>
                <div style="width:120px; float:left;">

                    @Ajax.ActionLink("Back to the list", "Index", "Equipment", new { id = Model.OPERATIONID }, new AjaxOptions()
                    {
                        OnSuccess = "OpenEquipment"
                    })

                </div>
            </div>
        </div>
    </div>

Проблема в том, что поле сущности для изменения содержит точку в имени, например:

  http://localhost:62396/controllername/Edit/SUPREP.ABL

Когда я отправляю форму, появляется ошибка

HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

Detailed Error Information:
Module     IIS Web Core
Notification       MapRequestHandler
Handler    StaticFile
Error Code     0x80070002
Requested URL      http://localhost:62396/controller/Edit/SUPREP.ABL
Physical Path      C:\projectname\controller\Edit\SUPREP.ABL

Я пытался все, что мог, но я не решил свою проблему. Любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Просто решено. Нужно добавить в RouteConfig.cs следующую строку:

routes.AppendTrailingSlash = true;

И все работает. Спасибо.

0 голосов
/ 19 ноября 2018

Проблема с вашим URL. IIS считает, что вы запрашиваете файл с расширением ".ABL". Вы можете просто добавить трейлинг /, чтобы он действовал как маршрут.

например: http://localhost:62396/controllername/Edit/SUPREP.ABL/

Также убедитесь, что вы включили двойное экранирование, добавив это в web.config:

<security>
   <requestFiltering allowDoubleEscaping="true"/>
</security>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...