Taking a guess, but chances are it's because you're exempting the extension from your filename in the Content-Disposition
header. Also, if your FinalName has spaces in it, your header is going to be messed up; you should probably escape it. e.g.
/* ... */
var contentDisposition = new System.Net.Mime.ContentDisposition("attachment")
{
FileName = FinalName + ".mp4"
}:
// Properly encode header using ContentDisposition class.
Response.AddHeader("Content-Disposition", contentDisposition.ToString());
The ContentDisposition
class can build the header for you encoding it as necessary.