首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nest Ajax.Beginform inside Html.Beginform

nest Ajax.Beginform inside Html.Beginform
EN

Stack Overflow用户
提问于 2016-05-11 07:12:26
回答 1查看 1.3K关注 0票数 1

我里面有初学者和手风琴。

看起来是这样的:

可能有超过1次的教育,工作经验等。

我的看法如下:

代码语言:javascript
复制
    @using (Html.BeginForm("Index", "CV", FormMethod.Post))
    {
        <div class="main">
            <div class="accordion">
                <div class="accordion-section private-information">
                    <a class="accordion-section-title main-color" href="#accordion-1">Private Information</a>
                    <div class="arrow-down"></div>
                    <div id="accordion-1" class="accordion-section-content">
                        <div class="private-information-divs">
                            <div class="pcontent-left main-color">name, surname</div>
                            @Html.TextBoxFor(m => m.privateInformation.Name, new { @class = "pcontent-right main-color" })
                        </div>
.................
                    </div><!--end .accordion-section-content-->
                </div><!--end .accordion-section-->


                <div class="accordion-section">
                    <a class="accordion-section-title main-color" href="#accordion-2">Education</a>
                    <div class="arrow-down"></div>
                    <div id="accordion-2" class="accordion-section-content">

                        @using (Ajax.BeginForm("EducationTable", new AjaxOptions()
                        {
                            InsertionMode = InsertionMode.Replace,
                            UpdateTargetId = "tblEducation"
                        }))
                        {
                            <div class="private-information-divs">
                                <div class="pcontent-left main-color">University</div>
                                @Html.TextBoxFor(m => m.newEducation.UniversityName, new { @class = "pcontent-right main-color" })
                                @Html.ValidationMessageFor(m => m.newEducation.UniversityName)
                            </div>
                            .................

                            <div class="add-education">
                                <button type="submit" class="add-education-button">add</button>
                            </div>
                        }

                        <div id="tblEducation">
                            @Html.Partial("EducationTable")
                        </div>
                    </div><!--end .accordion-section-content-->
                </div><!--end .accordion-section-->



            <input type="submit" class="continue" value="Continue" />
        </div>
    }

我的问题是嵌套forms。正如我在谷歌中发现的那样,我不能嵌套表单(Ajax.Beginform in Html.Beginform)。但我在建立我的模型的时候需要这个。我的控制器是:

代码语言:javascript
复制
    [HttpPost]
    public ActionResult EducationTable(CV cv)
    {

        CV _cv = new CV();

        if (Session["makeCV"] != null)
            _cv = Session["makeCV"] as CV;
        _cv.education = _cv.education ?? new List<Education>();
        _cv.education.Add(new Education()
        {
            Id = Guid.NewGuid(),
            UniversityName = cv.newEducation.UniversityName,
            Faculty = cv.newEducation.Faculty,
            Specialization = cv.newEducation.Specialization,
            StartDate = cv.newEducation.StartDate,
            EndDate = cv.newEducation.EndDate,
            OnGoing = cv.newEducation.OnGoing
        });
        Session["makeCV"] = _cv;

        return PartialView("EducationTable", _cv);
    }

等等,在索引中,我收集整个模型

代码语言:javascript
复制
    [HttpPost]
    public ActionResult Index(CV model)
    {
        CV _cv = new CV();

        if (Session["makeCV"] != null)
            _cv = Session["makeCV"] as CV;
        .....
        return View();
    }

但是,当我点击提交按钮内的教育表单(也就是Ajax.Beginform),它会提交整个表单(Html.Beginform)并进行索引操作。我怎样才能解决这个问题?我需要看一下这些部分的意见,然后提交整个表格。

EN

回答 1

Stack Overflow用户

发布于 2016-05-11 07:19:51

代码语言:javascript
复制
@using(Ajax.BeginForm("Search",new AjaxOptions
{
  HttpMethod = "Post",    
  OnSuccess = "Loaded"    
}))
{
   <input type="text" name="q" />
   <button type="submit" value="Search">Search</button>
}

<script type="text/javascript">
   function Loaded(result) {
      alert('result ' + result.Name);
   }
</script>

//控制器

代码语言:javascript
复制
[HttpPost]
public ActionResult Search(string q)
{

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37155533

复制
相关文章

相似问题

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