将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);
    } 

将c#对象转换为GET请求

您最有可能寻找的是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