asp.net mvc - MVC3 (Razor) How to do something with json passed data in Controller -


i've passed model in view controller following jquery ajax code:

$.ajax({         data: model,         type: "post",         url: '@url.action("createdoc")',         datatype: "json",         contenttype: "application/json; charset=utf-8",         success: function (result) {             alert('done '+ result.tostring());         }     }); 

the problem is: in controller method "createdoc"

[httppost]     public actionresult createdoc(ienumerable<movie> movies)     {         createwordprocessingdocument(movies);         return json(new { result = movies.count()});     } 

i can't movies enumerable data. call createwordprocessingdocument create document movies data. not. method code:

public void createwordprocessingdocument(ienumerable<movie> movies) {     httpcontextwrapper context = new httpcontextwrapper(system.web.httpcontext.current);     context.response.clear();     context.response.buffer = true;     context.response.addheader("content-disposition", "attachment;filename=example.doc");     context.response.contenttype = "application/vnd.ms-word.document";     context.response.charset = "";     stringbuilder sb = new stringbuilder();     sb.appendline("<p  align='center'><b> general title</b></p>");     sb.append("<br>"+movies.count());     (int = 0; < movies.count(); i++) {         sb.append("<br>title:" + movies.elementat(i).title +"");     }     context.response.output.write(sb.tostring());     context.response.flush();     context.response.end(); } 

but doesn't work: returns ajax post , pop ups "done" alert, result.tostring() showing html code create on createwordprocessingdocument method. how can avoid behaviour can data pass controller view? thanks.

asp.net mvc includes fileresult in order return file mime type browser.

do instead:

public actionresult  createdoc(ienumerable<movie> movies) {     byte[] filecontents = createfilefrommovies(movies);      return file(filecontents, "application/vnd.ms-word.document"); } 

instead of accessing response directly, create document byte array , return content using file() method.


Comments

Popular posts from this blog

django - How can I change user group without delete record -

java - Need to add SOAP security token -

java - EclipseLink JPA Object is not a known entity type -