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请求中可以传递给服务器的所有内容都是文本。