Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.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
Javascript 将模型/对象放在Http Get URL上_Javascript_Asp.net Mvc_Api - Fatal编程技术网

Javascript 将模型/对象放在Http Get URL上

Javascript 将模型/对象放在Http Get URL上,javascript,asp.net-mvc,api,Javascript,Asp.net Mvc,Api,我需要进行一个HTTPGET调用,我想知道是否可以使用一个模型作为参数,这样我就不必使用12个参数 Javascript function doSomething(){ vm.model = createModel(); window.open('ExportFile/' + vm.model, '_blank',''); } function createModel() { return { name: vm.name, t

我需要进行一个HTTPGET调用,我想知道是否可以使用一个模型作为参数,这样我就不必使用12个参数

Javascript

 function doSomething(){
     vm.model = createModel();
     window.open('ExportFile/' + vm.model, '_blank','');
 }

 function createModel() {
     return {
        name: vm.name,
        type: vm.type,
        status: vm.status,
        // etc...
     };
 }
控制器

 public virtual ActionResult ExportFile(Filters filter)
 {
     // query database and return file
 }
模型

 public class Filters
 {
     public string Name {get; set;}
     public string Type {get; set;}
     public string Status {get; set;}
     // etc... 
 }

不完全确定要实现什么,但是否尝试将对象转换为JSON字符串?例如:

function createModel() {
     return JSON.stringify({
        name: vm.name,
        type: vm.type,
        status: vm.status,
        // etc...
     });
 }

您可以传递一个将存储序列化模型的参数。对象的序列化可以使用类似以下内容的
JSON.stringify
来完成-
window.open('ExportFile/?model='+encodeURIComponent(JSON.stringify({filter:vm.model})),'u blank',''
@Vitaliy没有得到错误,但controllerIt的另一个问题中的模型为空。您已经询问了如何放置模型,现在您正在询问如何解析它。我不是C#专家,但我可以看到JS模型和服务器端模型有不同的属性(名称和名称、类型和类型)。问题可能就在这里。如果没有-请更新你的问题,不仅要问如何修改URL,还要问如何处理:)你应该以帖子的形式来做这件事。除了它创建的难看的查询字符串外,您可能会超过查询字符串限制并抛出和异常。当我这样做时,我会得到以下错误:“RoutedData必须包含一个名为“action”的项,该项具有非空字符串值”“您正在构建的模型对象中是否有一个名为“action”的项,并且该项是否非空?似乎您的后端需要您未发送的数据不,没有操作条目。现在,我使用的是与控制器post调用相同的模型。可能您的后端会根据post请求而不是GET自动确定操作。您可能需要在模型上手动设置它。您应该查看POST传递的内容,或者查看后端处理传入请求的代码