代码之家  ›  专栏  ›  技术社区  ›  David

ASP.NET MVC ActionMethod导致参数出现空异常

  •  0
  • David  · 技术社区  · 15 年前

    我想补充一下 滤波器 发送 得到 请求到同一页以筛选表中的记录。

    我现在遇到的问题是这个文本框抱怨 空对象引用 不传递参数时。例如,当用户第一次查看页面时,url是 '/mycontroller/myaction/' . 然后当他们应用过滤器并提交表单时 “我的控制者/我的行动?名字=…

    显然,问题是由于没有传递名称值(空)时,它仍试图绑定到“名称”文本框。对这个问题我该怎么办有什么建议吗?

    更新 我已经尝试设置了defaultValue属性,但我假设这只针对路由值而不是查询字符串值 ActionResult MyAction([DefaultValue(“”)字符串名称)

    //Action - /mycontroler/myaction
    ActionResult MyAction(string name)
    {
        ...do stuff
    }
    
    //View
    <div id="filter">
        <% Html.BeginForm("myaction", "mycontroller", FormMethod.Get); %>
        Name: <%= Html.TextBox("name") %>
        ....
    </div>
    <table>...my list of filtered data
    
    2 回复  |  直到 15 年前
        1
  •  0
  •   David    15 年前

    决定以不同的方式实现这一点,以便输入框发布到一个不同的操作方法,该方法执行一些业务逻辑工作,然后重定向回原始页面。

    重定向后获取

        2
  •  -1
  •   Fenton    15 年前
    //Action - /mycontroler/myaction
    ActionResult MyAction(string name)
    {
        if (name == null) {
            name = string.Empty;
        }
        ...do stuff
    }
    

    或者…添加重载…

    //Action - /mycontroler/myaction
    ActionResult MyAction()
    {
         return MyAction(string.Empty);
    }