다음 asp.net mvc 4.0 웹 응용 프로그램 내에 다음 코드가 있습니다. 이보기는 검색 필드가 검색보기 및 검색 액션 메소드를 호출하는 Ajax.BeginForm입니다 : -내 aps.net MVC 내부에 Ajax.BeginForm을 정의하는 방법이 있나요
@using (Ajax.BeginForm("AdvanceSearchIndex", "Home",
new AjaxOptions
{
HttpMethod = "get",
InsertionMode = InsertionMode.Replace,
LoadingElementId = "progress",
UpdateTargetId = "SearchTable"
}))
{
<div>
<span class="f">@Html.DisplayNameFor(model => model.ip) </span>
@Html.EditorFor(model => model.ip) @Html.DropDownListFor(a => a.ipselection, Model.NameSelectionOptions)
@Html.ValidationMessageFor(model => model.ip)
</div>
<div>
<span class="f">@Html.DisplayNameFor(model => model.mac) </span>
@Html.EditorFor(model => model.mac) @Html.DropDownListFor(a => a.macselection, Model.NameSelectionOptions)
@Html.ValidationMessageFor(model => model.mac)
</div>
<div>
<span class="f">@Html.DisplayNameFor(model => model.AssetTypeID) </span>
@Html.DropDownListFor(model => model.AssetTypeID, ((IEnumerable<TMS.Models.TechnologyType>)ViewBag.Techtypes).Select(option => new SelectListItem
{
Text = (option == null ? "None" : option.Name),
Value = option.AssetTypeID.ToString(),
Selected = (Model != null) && (option.AssetTypeID == (int)ViewBag.AssetTypeID)
}), "All",new { @class = "SmallDropDown5" })
@Html.ValidationMessageFor(model => model.AssetTypeID)
</div>
<input class="btn btn-success" type="submit" value="Search" /> <span> </span>
<input type="reset" value="Reset" class='btn' />
<img src="~/Content/Ajax-loader-bar.gif" class="loadingimage" id="progress" />
}
는 지금은 "검색"옆에 "CSV로 내보내기"라는 이름의 버튼을 추가 할 버튼을 클릭하면 내보내기 버튼을 클릭 할 수 있으며 내보내기 작업을 수행 할 다른 작업 방법이 호출됩니다. 그래서 내보내기 작업 메서드 내에서 동일한 검색 매개 변수를 전달해야하므로 내보내기 데이터는 관련된 레코드에만 적용됩니다. 그래서 나는 내보내기 버튼을 부모로, 검색을 내부 버튼으로 정의하려고했습니다. 그래서 사용자가 내보내기를 클릭하면 그들은 실제로 여기 내 업데이트 된 코드입니다, 검색 필드를 다시 제출합니다 -
@using (Ajax.BeginForm("Export", "Home",
new AjaxOptions
{
HttpMethod = "get",
InsertionMode = InsertionMode.Replace,
LoadingElementId = "progress",
UpdateTargetId = "SearchTable"
}))
{
using (Ajax.BeginForm("AdvanceSearchIndex", "Home",
new AjaxOptions
{
HttpMethod = "get",
InsertionMode = InsertionMode.Replace,
LoadingElementId = "progress",
UpdateTargetId = "SearchTable"
}))
{
//code goes here
<input class="btn btn-success" type="submit" value="Search" />
<input type="reset" value="Reset" class='btn' />
<img src="~/Content/Ajax-loader-bar.gif" class="loadingimage" id="progress" />
}
<input class="btn btn-success" type="submit" value="Export" />
}
하지만 난 내보내기 버튼을 아무것도에 clcik 때 발생하는 것입니다 ... 언제 내가 검색 클릭 내보내기 actin 메서드가 호출됩니다 .. 그래서 거기 Ajax.Beginform 중첩 된 방법은 무엇입니까 ??
아니요, 중첩 된 양식은 유효하지 않은 html이며 지원되지 않습니다. 더 이상 사용되지 않는'Ajax.BeginForm()'메소드를 삭제하고 훨씬 더 융통성을주는'$ .ajax()'메소드를 사용하십시오. –