来自jquery填充字段的值,不保存到模型

来自jquery填充字段的值,不保存到模型,jquery,asp.net-mvc,Jquery,Asp.net Mvc,我正在开发一个ASP MVC应用程序。我有一个从viewmodel任务名称填充的选择列表。基于所选项目,将在TaskValue的文本框中放置一个十进制值。jquery端正在工作,值显示在字段中,但提交时,TaskValue字段为空。如何获取要提交的值 视图模型: namespace MyJobs.Models { public class ViewModel { public CompletedTask CompTaskModel { get; set; }

我正在开发一个ASP MVC应用程序。我有一个从viewmodel任务名称填充的选择列表。基于所选项目,将在TaskValue的文本框中放置一个十进制值。jquery端正在工作,值显示在字段中,但提交时,TaskValue字段为空。如何获取要提交的值

视图模型:

namespace MyJobs.Models
{
    public class ViewModel
    {
        public CompletedTask CompTaskModel { get; set; }
        public TaskList TaskListModel { get; set; }

        public IEnumerable<SelectListItem> Tasks { get; set; }
    }
}
任务列表模型

namespace MyJobs.Models
{
    [MetadataType (typeof(TaskListData))]
    public partial class TaskList
    {
    }

    public class TaskListData
    {
        public string TaskName { get; set; }
        public decimal TaskValue { get; set; }

    }
}
观点:

    <div class="editor-field">
        @Html.DropDownListFor(m => m.CompTaskModel.TaskName, new SelectList(Model.Tasks, "Value", "Text"), "Select a Job")
        @Html.ValidationMessageFor(model => model.CompTaskModel.TaskName)
    </div>
        @Html.DropDownListFor(m => m.CompTaskModel.TaskName, new SelectList(Model.Tasks, "Value", "Text"), "Select a Job")
控制员:

    public ActionResult Index()
    {
        ViewModel vm = new ViewModel();

        vm.Tasks = from e in db.TaskList.ToArray()
                   select new SelectListItem
                   {
                       Value = e.TaskId.ToString(),
                       Text = e.TaskName
                   };

        return View(vm);
    }
谢谢你的帮助

编辑:我还收到一个错误,对象引用未设置为视图下拉框中对象的实例:

        @Html.DropDownListFor(m => m.CompTaskModel.TaskName, new SelectList(Model.Tasks, "Value", "Text"), "Select a Job")

我的猜测是,模型绑定器在将值绑定到小数点时遇到了问题。我以前遇到过这种情况

看看这个:


看看这是否有帮助。

从我在代码中看到的情况来看,您没有将值分配给TaskValue,只是将值分配给$CompTaskModel\u TaskValue.valv

此外,错误可能是在为TaskValue创建标记输入时,可能只是分配了属性id而没有名称属性

正确的例子:

<input type="hidden" name="TaskValue" id="TaskValue" value="" />

设置此输入字段的值后触发此输入字段的更改事件

$("yourInputSelector").hide();
$("yourInputSelector").val("your Value");
$("yourInputSelector").trigger("change");

您应该首先区分问题是在MVC还是在jQuery中。您说过jQuery正在工作,那么您为什么要对您的问题施加额外的干扰呢。如果您能向我们提供与问题最相关的信息,我们将更容易为您提供帮助。我想在视图中看到更多的表单,您甚至没有向我们显示无法在提交时绑定的输入。要编辑。。您正在发送“null”模型,或者模型类的属性CompTaskModel为null
$("yourInputSelector").hide();
$("yourInputSelector").val("your Value");
$("yourInputSelector").trigger("change");