在Index
视图中,我只有一个带有javascript函数的按钮,用于点击它时:
<script>
function AddCat() {
$.ajax({
type: "GET",
url: '@Url.Action("AddCategory")',
data: {},
});
}
</script>
@Html.DropDownList("Languages", new SelectList(Model.lstLanguages, "LanguageID", "Name", Session["langID"] ?? "1"), new { id = "ddlLanguages" })
<div id="categoriesPlace"></div>
<input type="button" id="btnAddCategory" onclick="AddCat()" value="AddCategory" />
当我点击按钮时,如您所见,我应该被重定向到AddCategory
操作,该操作会在数据库中添加记录并返回AddCategory
视图。问题是,当它到达AddCategory
视图中的下拉列表时,它会直接转到Addbtn_CLick()
函数,就像它被点击一样,然后它会将我重定向到Index
操作。你能解释一下这种行为吗?
所以,这是我的CategoryController
:
public class CategoryController : Controller
{
public ActionResult AddCategory()
{
CategoryViewModel vm = new CategoryViewModel();
vm.AddNewCategory();
return View(vm);
}
public ActionResult AddCategoriesLanguages(int catID, int lanID, string title, string shrtDescription, string description)
{
CategoryViewModel vm = new CategoryViewModel();
vm.AddCategoriesLanguages(catID, lanID, title, shrtDescription, description);
return RedirectToAction("Index");
}
}
而且,这是我的AddCategory
视图:
@model Onion.Web.ViewModels.CategoryViewModel
@{
ViewBag.Title = "AddCategory";
}
<h2>AddCategory</h2>
@Html.DropDownList("Languages", new SelectList(Model.lstLanguages, "LanguageID", "Name",@HttpContext.Current.Session["langID"]),new { id = "ddlLanguages" })
<br />
<label for="txbTitle">Title:</label>
<input type="text" id="txbTitle"/>
<br />
<label for="txbShortDescription">Short Description:</label>
<input type="text" id="txbShortDescription" />
<br />
<br />
<input type="button" id="btnAdd" onclick="btnAdd_Click" value="Add" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
<script>
function btnAdd_Click() {
$.ajax({
type: "GET",
url: '@Url.Action("AddCategoriesLanguages")' + '?catID=' +@Model.newCategoryID +'&lanID=' + $("#ddlLanguages").val() + '&title=' + $('#txbTitle').val() + '&shrtDescription=' + $('#txbShortDescription').val() + '&Description=' + $('#txbDescription').val(),
data: {}
});
}
</script>
答案 0 :(得分:0)
在AddCategory视图中,尝试更改按钮的onclick属性以包含函数名称和括号,如下所示:
<input type="button" id="btnAdd" onclick="btnAdd_Click()" value="Add" />
我不是百分百确定这是否是问题,但它对我来说很突出。