Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从桌面客户端将对象作为参数传递给ASP.NETMVC中的ActionResult方法_C#_Asp.net_Asp.net Mvc - Fatal编程技术网

C# 从桌面客户端将对象作为参数传递给ASP.NETMVC中的ActionResult方法

C# 从桌面客户端将对象作为参数传递给ASP.NETMVC中的ActionResult方法,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,给定以下代码: using (var client = new WebClient()) { string url = string.Concat(someUrl, "SomeControllerName/", currentId, "/WriteLogFile"); var toWrite = DateTime.Now /* Code to post object to URL goes here e.g. client.UploadValues(url, som

给定以下代码:

using (var client = new WebClient())
  {
    string url = string.Concat(someUrl, "SomeControllerName/", currentId, "/WriteLogFile");
    var toWrite = DateTime.Now

    /* Code to post object to URL goes here e.g. client.UploadValues(url, someNameValueCollectionObject)*/
  }
和控制器方法签名:

public ActionResult WriteLogFile(DateTime date, int id)

如何使代码的第一部分将DateTime对象传递给这个ActionResult方法

添加查询字符串参数:

var toWrite = DateTime.Now;
string url = string.Concat(someUrl, "SomeControllerName/", currentId, "/WriteLogFile");
url = string.Concat(url, "?date=", toWrite.ToString("s"));

添加查询字符串参数:

var toWrite = DateTime.Now;
string url = string.Concat(someUrl, "SomeControllerName/", currentId, "/WriteLogFile");
url = string.Concat(url, "?date=", toWrite.ToString("s"));

您可以使用中的格式字符串作为日期

string url = string.Format("someUrl/SomeControllerName/WriteLogFile/{0}/{1}", currentId, DateTime.Now.ToString("MM-dd-yyyy"));
并在routes表中添加一个条目,以将其路由到相应的控制器和操作

routes.MapRoute("SomeRoutename",
                "SomeControllerName/WriteLogFile/{id}/{date}",
                new {   controller = "SomeControllerName", action = "WriteLogFile", 
                        date= DateTime.Now});

您可以使用中的格式字符串作为日期

string url = string.Format("someUrl/SomeControllerName/WriteLogFile/{0}/{1}", currentId, DateTime.Now.ToString("MM-dd-yyyy"));
并在routes表中添加一个条目,以将其路由到相应的控制器和操作

routes.MapRoute("SomeRoutename",
                "SomeControllerName/WriteLogFile/{id}/{date}",
                new {   controller = "SomeControllerName", action = "WriteLogFile", 
                        date= DateTime.Now});

这就是我目前拥有的解决方案。我将每个对象转换为它的字符串表示形式。好吧,不管您必须转换为字符串表示形式,因为您正在发出HTTP请求。如果您没有包含“日期”参数的路由,那么您必须按照Craig的建议使用QueryString。这是唯一的方法。Http是纯文本:查询字符串是文本。表单字段是文本。在GET请求中可以传递给服务器的所有内容都是文本。这就是我目前拥有的解决方案。我将每个对象转换为它的字符串表示形式。好吧,不管您必须转换为字符串表示形式,因为您正在发出HTTP请求。如果您没有包含“日期”参数的路由,那么您必须按照Craig的建议使用QueryString。这是唯一的方法。Http是纯文本:查询字符串是文本。表单字段是文本。在GET请求中可以传递给服务器的所有内容都是文本。