访问由Javascript创建的元素-在MVC 3中的代码中

问题描述

| 在我的cshtml中,我定义了一个标签   我正在创建一个图像上传表单,在“文件提交”中,我将该值保存在临时表(sql)中,并通过Ajax调用返回该值(GUID),并将该GUID绑定到动态创建的DIV标签(Jquery / Javascript)中
<div id=\"dvdisplayImageParent\" class=\"block clear\" runat=\"server\">

                </div>
现在,我使用Javascript创建DIV标签(多个)(包含图像和文本框),并将其附加dvdisplayImageParent。 我想访问控制器中的值
public ActionResult NewProject(ProjectEditviewmodel model,String btnSave)
    {// Want to values inside my dvdisplayImageParent }
我怎样才能做到这一点?? 我的Javascript如下: `var img = document.createElement(\“ IMG \”);                                         var lbl = document.createElement(\“ label \”);                                         var chk = document.createElement(\'input \');                                         chk.type = \'复选框\';
                                    //Assign image path to display the image
                                    img.src = imgPath;
                                    img.id = imageID;
                                    img.style.height = \"100px\";
                                    img.style.width = \"100px\";

                                    //Appending it with Dynamic DIV
                                    dynDiv.appendChild(img);

                                    var input = document.createElement(\"input\");
                                    //input.setAttribute(\"type\",\"hidden\");
                                    input.setAttribute(\"type\",\"text\");
                                    input.setAttribute(\"name\",\"hdn\" + imageID);
                                    input.setAttribute(\"value\",imageID);


                                    //Image Link
                                    var aElemImageLink = document.createElement(\'a\');
                                    //Move Up Link
                                    var aElemUpLink = document.createElement(\'a\');
                                    //Move Down Link
                                    var aElemDownLink = document.createElement(\'a\');

                                    var callOnImageclick = \"DeleteImage(\'\" + imageID + \"\',\'\" + divDynamicID + \"\'); return false; \";
                                    aElemImageLink.setAttribute(\"onclick\",callOnImageclick);
                                    aElemImageLink.childNodes = imageID;
                                    var callOnMoveUpclick = \"MoveImageUP(\'\" + imageID + \"\',\'\" + divDynamicID + \"\'); return false; \";
                                    aElemUpLink.setAttribute(\"onclick\",callOnMoveUpclick);
                                    var callOnMoveDownclick = \"MoveImageDOWN(\'\" + imageID + \"\',\'\" + divDynamicID + \"\'); return false; \";
                                    aElemDownLink.setAttribute(\"onclick\",callOnMoveDownclick);

                                    //Create a text node to hold the text of the <a>
                                    var aElemTN = document.createTextNode(\'     Delete Image           \');
                                    //Create a text node to hold the text of the <a>
                                    var aElemTNUp = document.createTextNode(\'     Move UP               \');
                                    //Create a text node to hold the text of the <a>
                                    var aElemTNDown = document.createTextNode(\'     Move DOWN           \');

                                    //Append the <a> text node to the <a> element
                                    aElemImageLink.appendChild(aElemTN);
                                    aElemUpLink.appendChild(aElemTNUp);
                                    aElemDownLink.appendChild(aElemTNDown);

                                    //Append the new link to the existing <div>
                                    dynDiv.appendChild(aElemImageLink);
                                    dynDiv.appendChild(aElemUpLink);
                                    dynDiv.appendChild(aElemDownLink);


                                    lbl.id = \"lbl\" + imageID;
                                    var aElemTNTag = document.createTextNode(\'    Taggar          \');
                                    var aElemTNWantsToshare = document.createTextNode(\'    Dela?         \');

                                    var txtTag = document.createElement(\"input\");
                                    txtTag.id = \"txt\" + imageID;
                                    txtTag.setAttribute(\'name\',\'Tag\');
                                    dynDiv.appendChild(lbl);
                                    dynDiv.appendChild(aElemTNTag);
                                    dynDiv.appendChild(txtTag);
                                    dynDiv.appendChild(chk);
                                    dynDiv.appendChild(aElemTNWantsToshare);
                                    dynDiv.appendChild(input);

                                    //Appending Dynamic DIV with Parent DIV
                                    var parentDiv = document.getElementById(\"dvdisplayImageParent\");
                                    parentDiv.appendChild(dynDiv);`
    

解决方法

我有一个选择:
string NoOfImages = Convert.ToString(Request.Form[\"Your Control Name Which You Want To Access\"]);
现在,使用
Request.Form[]
use可以获取使用JAVASCRIPT创建的CONTROL中的值。 但仍在等待更好的解决方案。 >帮助继续...     ,在mvc中没有后缀或代码。您无法从控制器访问任何元素。我建议您观看其中一些视频。