将c#对象转换为GET请求
本文关键字:GET 请求 转换 对象 | 更新日期: 2023-09-27 18:03:01
我想把我的c#对象转换成GET请求。虽然我手动在我的控制器后方法,但我只是想知道,是否有任何方法转换c#对象GET请求。
e。g:我在控制器中手动创建了endPointURI字符串,但我想通过一些系统的过程来完成。
我有一个名为ClassA的类,它看起来像这样
ClassA
public class ClassA
{
public int ID { get; set; }
public string Origin { get; set; }
public string Destination { get; set; }
}
我已经用这个类在我的视图中创建了一个表单,看起来像这样
Search.cshtml
<div>
@using (Ajax.BeginForm("SearchAction", "Search", new AjaxOptions()
{
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "ResultBox"
}))
{
<div class="form-group">
<label>Origin:</label>
@Html.TextBoxFor(x => x.Origin, new { @class = "form-control" })<br/>
</div>
<div class="form-group">
<label>Destination:</label>
@Html.TextBoxFor(x => x.Destination, new { @class = "form-control"})<br/>
</div>
<div class="text-center">
<input class="btn btn-success" type="submit" value="Check" />
</div>
}
和我在控制器类"SearchController"中的操作"SearchAction"是这样的
SearchController.cs
[HttpGet]
public ActionResult SearchAction()
{
return View();
}
[HttpPost]
public ActionResult SearchAction(ClassA obj)
{
// I want to make this string through some process ( not manually)
String endPointURI = "/v1/shop?origin="+obj.Origin+"&destination="+obj.Destination;
return View("Result",endPointURI);
}
您最有可能寻找的是UriHelper.Action
代码大致如下:
String endPointURI = Uri.Action(
actionName:"shop", controllerName:"ShopController",
routeValues: new {origin=obj.Origin,destination=obj.Destination});
return View("Result",endPointURI);
请注意,如果您试图重定向到的操作将整个ClassA
作为参数,您可以直接传递它。
ActionResult Shop(ClassA model)...
Uri.Action(... routeValues: new {model=obj});
很抱歉,但我认为没有办法自动做到这一点。也许你可以使用String。简化格式:https://msdn.microsoft.com/en-us/library/system.string.format(v=vs.110).aspx