【发布时间】:2016-02-17 07:44:38
【问题描述】:
您好,我需要将项目添加到列表中,当列表有元素但列表为空时它可以工作javascript return undefined。
这是我的函数:当列表为空时,namevalue 未定义我认为它的主要问题。
function submitAjaxForm(formId)
{
var form = $("<form></form>");
var targetID = formId.substr(1);
form.append($(formId).html());
var nameValue = $(formId).find('.showDictionariesList').first().find('input[type="hidden"]').first().attr('name');
var indexToCut = nameValue.indexOf('[', nameValue.indexOf('[', 0) + 1);
var featureIndex = nameValue.substring(0, indexToCut);
var contentVal = $("#dropDownList option:selected").val();
var returnValue = form.serializeArray();
returnValue[returnValue.length - 1].value = contentVal;
}
这个列表
public List<ShowDictionaryModel> ShowDictionaries { get; set; }
该物品的类别:
public class ShowDictionaryModel
{
public long Id { get; set; }
public string Value { get; set; }
public long? ProductId { get; set; }
public string FeatureId { get; set; }
internal static ShowDictionaryModel FromDto(DictionaryDto dto)
{
ShowDictionaryModel model = new ShowDictionaryModel();
model.Id = dto.Id;
model.Value = dto.Value;
model.ProductId = dto.ProductId;
model.FeatureId = dto.FeatureId;
return model;
}
}
Cshtml 代码:showDictionariesList 是包含我要修改的列表的类
@model MultiShop.Panel.Models.Product.AddProductFeatureTextModel
<div>
<div id="featureText-@Model.TypeId">
@Html.HiddenFor(m => m.TypeId)
@Html.HiddenFor(m => m.IsRequired)
@Html.HiddenFor(m => m.Name)
@Html.Label(Model.Name)
@Html.TextBoxFor(m => m.Value)
@if (Model.IsRequired)
{
<span class="requiredField"></span>
}
@Html.ValidationMessageFor(m => m.Value)
<div class="showDictionariesList">
@Html.EditorFor(m => m.ShowDictionaries)
</div>
@Html.DropDownListFor(m => m.SelectedDictionaryItemId, new SelectList(Model.DictionaryItems, "Id", "Value", Model.SelectedDictionaryItemId), new { id = "dropDownList" })
<input type="button" value="Save" onclick="@("submitAjaxForm('#featureText-" + @Model.TypeId + "')")" />
</div>
//}
【问题讨论】:
-
你说的是哪个列表?也有助于查看 JavaScript 错误。
-
我用cshtml代码编辑了主帖。
-
如果你分享编译好的
HTML而不是cshtml代码会更好 -
在使用
namevalue之前,为什么不检查namevalue是否不是undefined -
我可以,但是当我这样做时,当列表为空时代码仍然无法工作。
namevalue在列表有元素时具有正确的值,否则namevalue是undefined
标签: javascript c# jquery model-view-controller