我不明白为什么我没有MVC AJAX

用户名

我有Get和Post部分操作。获取我在应用程序中拥有的图像列表。

[HttpGet]
public PartialViewResult ViewImageFileList()
{
    IEnumerable<string> allImages = Directory.EnumerateFiles(Server.MapPath("~/Images/NBAlogoImg/"));

    return PartialView(allImages);
}

发布删除的图片,我额外。

[HttpPost]
public PartialViewResult ViewImageFileList(string imageNameType)
{
    var fileToDeletePath = Path.Combine(Server.MapPath("~/Images/NBAlogoImg/"), imageNameType);

    if (System.IO.File.Exists(fileToDeletePath))
    {
        fileOperations.Delete(fileToDeletePath);
    }

    return PartialView();
}

我的部分视图的.chhtml

@model IEnumerable<string>

<div class="name-block-style">
     Логотипы которые имеются
</div>

<div id=team-logo-wrapper-images>
<ul>
    @foreach (var fullPath in Model)
    {
        var fileName = Path.GetFileName(fullPath);
        <li>
            <div class="box-name-image">

                <p class="image-name-type">@fileName</p>
                <img src="@Url.Content(string.Format("~/Images/NBAlogoImg/{0}", fileName))"
                     class="logo-images" alt="Логотип команды"
                     title="Логотип команды" />
            </div>
        </li>
    }
</ul>

<div id="delete-image-form" class="form-group">
     @using (Ajax.BeginForm(
    "ViewImageFileList",
    "Team",
     new AjaxOptions() { HttpMethod = "POST", OnComplete = "reloadPage()" }))
{
    <label>Введите имя с указание типа изображения</label>
    <input type="text" class="form-group" name="imageNameType" id="imageNameType" />
    <input type="submit" value="Удалить" class="btn btn-primary" />
}
</div>

<script>
    function reloadPage() {
        location.reload();
    }
</script>

我的问题是在编写删除的图像并提交时使用空引用(我通过ajax完成)。我有此错误Null参考,但是单击以继续时,图像被删除,脚本重新加载页面。

我想了解为什么要使用null以及如何解决该问题,因为在删除图像时它总是会停止我的应用程序。

克里斯托斯

问题在于,在删除图像后进行POST时,您不会像在中正确执行的那样填充局部视图的模型ViewImageFileList当View Engine尝试构建您将在POST之后发送给客户端的视图时,如果尝试对foreachnull引用执行on时会得到null引用异常,则会产生这种结果

就是说,您需要做的就是传递PartialView所有图像。因此,只需return在发布此操作方法语句之前添加以下内容:

var allImages = Directory.EnumerateFiles(Server.MapPath("~/Images/NBAlogoImg/"));
return PatialView(allImages);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

不明白为什么我的函数没有被调用

我有分段错误,我不明白为什么

(FLASK) 我不明白为什么我的 html 文件没有更新/渲染

我不明白为什么气球在我制作的小游戏中没有移动

我不明白为什么我的递归函数没有按预期运行

我的变量没有除,我不明白为什么

我不明白为什么编译

我不明白为什么文件没有写到挂载的分区上

我不明白为什么这两个元素没有并排对齐?

我不明白为什么最后阶段没有任何保存或追加数据操作

Laravel 叶片和顺风没有正确混合,我不明白为什么

我不明白为什么 TypeScript 没有在这里抛出错误

我不明白为什么在这个给定的程序中 a 的值没有增加

我不明白为什么我的屏幕上没有输出这个使用 c 语言数组的简单堆栈实现

我不明白为什么我的代码没有采用输入框的值并创建新对象

我不明白为什么我的 python 代码没有以英里为单位返回答案

我不明白为什么我的波形是这样出来的

我不明白为什么我的团队失败了

我不明白为什么我的 super() 产生错误

为什么我没有在ASP.Net MVC控制器中获取AJAX数据?

为什么我的AJAX请求没有扩展OWIN MVC会话?

Typescript Map <enum,set <enum >>“此调用没有重载”,但是我不明白为什么?

我不明白我的程序有什么问题

我的循环永无止境...我不明白为什么。有任何想法吗?

我有这个错误:无法读取null的属性“值”,我不明白为什么

我“解决”了 FizzBuzz,但我不明白它为什么有效

我不明白为什么我会收到这个错误:[...] 有多个参数值 [...]

我有一个无限的 while 循环,但我不明白为什么

phpExcel TextValueBinder不明白为什么我需要它