You have to appreciate the separation of server code and client code. Your server code (everything after @) runs first on the server, the resulting html is then sent to the client to execute, and at that point your js runs, so you can't have server code run dynamically in your javascript. View the source of your page and look at the javascript for the line that starts
cell2.innerHTML = ...
That is the exact code that runs every time you call myCreateFunction.
What you have to do is create the input elements using the same html format that EditorFor does. Again if you view the source you'll see what that format is, the important bit is the "name", which will be the name derived from your modal with a number in square brackets that indicates it is part of an array, so you'll have elemenets with names like "myElement[0]", "myElement[1]" etc. When elements like that are submitted with your form they are parsed into an array by .net.
Anyway, there is a basic example that shows how to do this here;
ASP.NET MVC3 Dynamically added form fields model binding[
^]
It shows how to create the input html using the right format, just adapt that for your own variable names.