在Asp.Net MVC控制器中读取Axios Get参数 - c#

我正在使用axios get方法并将参数传递给asp.net mvc控制器。我可以读取单个值。但我试图将所有值一起作为一个对象读取。我没有视图模型,并且试图将参数读取为通用对象。在c#控制器中用作参数的axios params数据类型是什么?我为buildurl和验证每个参数创建了一个单独的方法,但是是否可以选择一次验证所有参数?

这有效

反应代码

export const GetRequestCall = () => {
  const getUrl = 'baseurl';

  return new Promise((resolve, reject) => {
    axios.get(getUrl, {
      params: {
        param1: 'abc',
        param2: 'efg'
      }
    })
      .then(response => {

      }).catch(error => reject(error));
  });
};

C#控制器代码

     //Read parameter as individual strings
        [HttpGet("[action]")]
        public async Task<string> GET(string param1, string param2)
        {
            try
            {  
                var url = BuildUri( param1, param2); 
             }
         }

这没用

控制器代码

 //Read parameters as a single object to do some logic. Tried 
    //[FromBody]object, Object, String as parameters datatypes for data
        [HttpGet("[action]")]
        public async Task<string> GET(Array data)
        {               
            try
            {
                var url = BuildUri( param1, param2); 
             }
         }

    private static string BuildUri(string BaseUrl, string param1, string param2)
    {
        var uriBuilder = new UriBuilder(BaseUrl);
        var query = HttpUtility.ParseQueryString(uriBuilder.Query);
        if (!string.IsNullOrEmpty(param1)) { query["param1"] = param1; }
        if (!string.IsNullOrEmpty(param2)) { query["param2"] = param2; }
        uriBuilder.Query = query.ToString();
        var url = uriBuilder.ToString();
        return url;
    }

我在C#中找到了使用名称值对构建查询字符串的选项,但是不确定如何将axios参数作为名称值对对象传递给c#控制器。
参考:https://codereview.stackexchange.com/questions/91783/constructing-a-query-string-using-stringbuilder

参考方案

可能有更好的方法,但是一种方法是使用像这样的object []参数:

        [HttpGet("[action]")]
        public string GET(object[] objects)
        {
            string param1 = objects[0] as string;
            string param2 = objects[1] as string;
            try
            {
                var url = BuildUri(param1, param2);
            }
        }

同样,您不应该使用没有catch块的try块。我希望这有帮助

在ASP.NET MVC中创建数据库回调的最有效方法 - c#

我有一个ASP.NET MVC网页,该网页基本上通过日期过滤器显示MS SQL数据库中表的行。当新行插入数据库表时,我想用新行列表更新网页视图。实现此目标的最有效方法是什么?基本上,我想从我的JavaScript创建一个到数据库服务器的回调,以用新结果更新UI。假设数据库表中的行数很大。(〜1百万)谢谢,cas 参考方案 如果数据库更新非常频繁,则可以按特定…

在ASP.NET WebForms中在服务器端初始化bootsrap datatimepicker - javascript

我有这个HTML<div class='datepicker input-group date' id='datetimepickerStart'> <input type='text' class="form-control" /> <span c…

在ASP.NET Core 2.1中添加自定义TagHelpers - c#

我严格按照ASP.NET Core文档进行操作,并花费了大量时间来拖曳堆栈溢出,试图实现简单的自定义TagHelper,但没有成功。任何人都可以就任何陷阱或已知错误提出建议吗?应用程序属性:AssemblyName: AmpWeb Target Framework .NET Core 2.1 NuGet软件包Microsoft.AspNetCore.All …

在asp.net中创建基本类 - c#

我是.Net世界的新手,并且想创建一个类,以便我可以学习OOP。我有一个.sln文件,该文件中有多个项目。我想创建一个将接受3个参数的类,即“存储的过程名称”,“ UserID”和“ PageName”。存储的proc将记录启动特定页面的人员的ID,页面名称和DateTime(位于存储的proc中)。这是用于敏感HR资源的内部监视。我的.sln中的多个项目将…

在asp.net中使用jQuery做一些ajax - c#

我能够在asp.net中做非常基本的jquery ajax。但是我陷入了困境。请参见下图。由于此对话框具有文件上载控件,因此我无法弄清楚如何将数据发布到服务器并执行正确的操作。我什至感到困惑,我将如何在服务器端获取文件。在正常情况下(回传一),我们可以使用FileUpload1.PostedFile.InputStream 但是,当我打算使用[WebMeth…