在我的 ASP MVC 3 页面上,当用户从下拉列表中选择一个没有相应值的项目时,我会动态创建一个包含带有onclick()
方法的按钮的字段集。当用户在他们想要创建的字段的输入框中键入一个值然后单击按钮时,我试图将它们路由到Create
具有适当参数的控制器操作(在下拉列表中选择的项目和文本用户刚刚输入)。但是,每次单击按钮时,都会收到 404 错误。
我Create
在控制器中的方法开始处设置了一个断点并且它永远不会被触发,所以我知道问题不在于渲染并发送回视图,而是到达Create
控制器的原始尝试(尽管我知道这可能从 404 错误中很明显:)
我已经检查了 URL,它正在正确呈现,所以我不确定我做错了什么。这是创建字段集的 jquery/ajax
<script>
$(document).ready(function () {
var globalCreate = '@Url.Action("Create", "DropDownValues")';
var globalEdit = '@Url.Action("Edit", "DropDownValues")';
$('#Categories').change(function () {
var displayPage = $('#Categories option:selected').text();
$.ajax({
type: 'GET',
url: '@Url.Action("getItems","DropDownValues")',
data: { model: displayPage },
success: function (data) {
if (data == "") {
//Clear edits if necessary
if ($('#edits').html()) {
$('#edits').empty();
}
$('#edits').append('<fieldset style=width:250px;><legend>No fields yet</legend>' +
'<div class=editor-label>' +
'Enter field name' +
'</div>' +
'<div class=editor-field>' +
'<input type="text" id="newField" />' +
'</div>' +
'<button onclick="addItems()">Add Items</button>' +
'</fieldset>');
} else {
这是onclick方法
function addItems(){
window.location.href = ('@Url.Action("Create", "DropDownValues")' + '/' + $('#Categories option:selected').text() + '/' + $('#newField').val());
}
现在,如果我要选择Testing display
下拉项,asdf
在输入框中键入并单击按钮,将呈现以下 URL
http://localhost:2574/DropDownValues/Create/Testing%20display/asdf
这是来自控制器的方法签名
public ActionResult Create(string model, string field)
{