首页 \ 问答 \ MVC5 - 如何为动作参数类型定义反序列化行为?(MVC5 - How do I define deserialization behavior for action parameter type?)

MVC5 - 如何为动作参数类型定义反序列化行为?(MVC5 - How do I define deserialization behavior for action parameter type?)

    public class LogsController : Controller
    {
        public async Task<ActionResult> User(string id, int? page)
        {
            return await User(id, (Page)page);
        }

        private async Task<ActionResult> User(string id, Page page)
        {
            var data = await Repo.GetData(id, page, 10);
            var model = new UserLogs
            {
                User = id,
                Events = data,
                Pager = new PagerInput(page, 10, data.TotalCount)
            };

            return View("UserGrid", model);
        }
    }

我的Page类提供了有用的功能,例如确保页面永远不会小于1,等等。 但是,如果我的公共操作将Page作为参数,它始终为null,无论表单或查询字符串中的值是什么,即使我已经定义了与int之间的隐式强制转换。

无论如何,我可以告诉MVC如何反序列化页面类型? 这样提供某种方法/ ctor从字符串转换?

我想在实际的页面类型上定义它,因为我将在多个控制器/动作中使用它。

我很高兴不需要双动作定义。


    public class LogsController : Controller
    {
        public async Task<ActionResult> User(string id, int? page)
        {
            return await User(id, (Page)page);
        }

        private async Task<ActionResult> User(string id, Page page)
        {
            var data = await Repo.GetData(id, page, 10);
            var model = new UserLogs
            {
                User = id,
                Events = data,
                Pager = new PagerInput(page, 10, data.TotalCount)
            };

            return View("UserGrid", model);
        }
    }

My Page class provides useful functionality such as making sure the page is never less than 1, ect. However, if my public action takes Page as a parameter, it is always null, no matter the value in the form or querystring, even though I have defined implicit casts to and from int.

Is there anyway I can tell the MVC how to deserialize a Page type? Such a providing some sort of method/ctor to convert from string?

I would like to define it on the actual Page type since I will be using it in multiple controllers/actions.

I would be nice to not need the double action definition.


原文:https://stackoverflow.com/questions/44338006
更新时间:2022-06-25 20:06

最满意答案

您的PhotoBundle \ Entity \ Photo实体应如下所示。 注意它没有完全充实,只是相关的方法。

class Photo{

   protected $id;

   protected $file_managed;

   public function setFileManaged($file)
   {

       $this->file_managed = $file;

       return $this;

   }

   public function getFileManaged()
   {

       return $this->file_managed;

   }

}

有了这个,您应该能够访问entity.fileManaged.url或您在twig模板中的实体中定义的任何内容。


Your PhotoBundle\Entity\Photo entity should look like this. Note it is not fully fleshed out, just the relevant methods.

class Photo{

   protected $id;

   protected $file_managed;

   public function setFileManaged($file)
   {

       $this->file_managed = $file;

       return $this;

   }

   public function getFileManaged()
   {

       return $this->file_managed;

   }

}

With this you should be able to access entity.fileManaged.url or whatever you defined in your entity inside your twig templates.

相关问答

更多

相关文章

更多

最新问答

更多
  • 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
  • 如何通过引用返回对象?(How is returning an object by reference possible?)
  • 矩阵如何存储在内存中?(How are matrices stored in memory?)
  • 每个请求的Java新会话?(Java New Session For Each Request?)
  • css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
  • 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
  • xcode语法颜色编码解释?(xcode syntax color coding explained?)
  • 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
  • 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
  • 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
  • 西安哪有PLC可控制编程的培训
  • 在Entity Framework中选择基类(Select base class in Entity Framework)
  • 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
  • 电脑二级VF有什么用
  • Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
  • 金华英语角.
  • 手机软件如何制作
  • 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
  • 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
  • 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
  • Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
  • 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
  • python的访问器方法有哪些
  • DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
  • 在Ruby中对组合进行排序(Sorting a combination in Ruby)
  • 网站开发的流程?
  • 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
  • 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
  • 透明度错误IE11(Transparency bug IE11)
  • linux的基本操作命令。。。