首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery和@Html.TextBoxfor()

jQuery和@Html.TextBoxfor()
EN

Stack Overflow用户
提问于 2013-08-05 18:58:53
回答 3查看 2.5K关注 0票数 1

我目前有以下代码:

代码语言:javascript
复制
        [HttpPost]
        public ActionResult Index(IList<LocalPageModel> postPages,
          IEnumerable<HttpPostedFileBase> files)
        {
            if (ModelState.IsValid)
            {
                foreach (HttpPostedFileBase file in files)
                {
                    if ((file != null) && (file.ContentLength > 0))
                    {
                        var fileName = Path.GetFileName(file.FileName);
                        var path = Path.Combine(Server.MapPath("~/App_Data/"),
                          fileName);
                        file.SaveAs(path);
                    }
                }
            }
            else
            {
                ManagePagesModel mod = new ManagePagesModel
                {
                    PostPages = postPages
                };

                return View("Index", mod);
            }
            return RedirectToAction("Index");
        }

在我看来,我有一个JavaScript按钮,它将添加一个div,以便用户可以发布另一个页面,例如:

代码语言:javascript
复制
$("#add-page").click(function () {
    $("#page").append('<div id="page"> @Html.TextBoxFor(u => u.PostPages[0].Title) </div>');
});

如何使用户单击JavaScript按钮时,新文本将被附加到页面 u.PostPages[x]中?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-05 19:27:31

如果您想在客户端上完成所有操作(不使用AJAX),则可能根本不使用MVC帮助程序,而是手动完成--您知道将呈现的HTML,所以只需这样做:

代码语言:javascript
复制
var i = 0;
$("#add-page").click(function () {
   $("#page").append('<input type="text" name="PostPages[' + (i++) + '].Title">');
});

也许把代码弄清楚一点,这样引号就不会太混乱了,但是你明白了.

票数 3
EN

Stack Overflow用户

发布于 2013-08-05 19:46:58

要增加u.PostPagesx,可以使用以下代码:

代码语言:javascript
复制
<script>

var i = 0;

$("#add-page").click(function () {
    i++
    $("#page").append('<div id="page"> @Html.TextBoxFor(u => u.PostPages['+i+'].Title') </div>');
});

</script>

下面是一个小的工作示例:小提琴

票数 0
EN

Stack Overflow用户

发布于 2013-08-05 20:10:25

你并没有超越你的视野,但我想你在顶部应该有以下几点:

代码语言:javascript
复制
@model = ManagePagesModel

如果是这样的话,那么您可以使用下面的@foreach遍历页面模型:

代码语言:javascript
复制
$("#add-page).click(function() {
@foreach(var pageModel in Model.PostPages){
 $("#page").append('<div id="page"> @Html.TextBoxFor(u => pageModel.Title) </div>');
}); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18065668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档