我正在尝试为MVC为我创建的脚手架创建视图设置默认值。我已经尝试创建模型的一个实例并将其传递给视图,但抛出错误。
Function Create(id As Integer) As ViewResult
Dim job As Job
job.CustomerId = id
Return View(job)
End Function
如何使用以下视图将我的创建视图预先填充参数中的id,以便在创建新作业时使用该客户ID自动创建。我的观点如下:
@ModelType Laundry.Job
@Code
ViewData("Title") = "Create"
End Code
<h2>Create</h2>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@Using Html.BeginForm()
@Html.ValidationSummary(True)
@<fieldset>
<legend>Job</legend>
<div class="editor-label">
@Html.LabelFor(Function(model) model.JobDate)
</div>
<div class="editor-field">
@Html.EditorFor(Function(model) model.JobDate)
@Html.ValidationMessageFor(Function(model) model.JobDate)
</div>
<div class="editor-label">
@Html.LabelFor(Function(model) model.CustomerId)
</div>
<div class="editor-field">
@Html.EditorFor(Function(model) model.CustomerId)
@Html.ValidationMessageFor(Function(model) model.CustomerId)
</div>
<div class="editor-label">
@Html.LabelFor(Function(model) model.BillId)
</div>
<div class="editor-field">
@Html.EditorFor(Function(model) model.BillId)
@Html.ValidationMessageFor(Function(model) model.BillId)
</div>
<div class="editor-label">
@Html.LabelFor(Function(model) model.JobStatus)
</div>
<div class="editor-field">
@Html.EditorFor(Function(model) model.JobStatus)
@Html.ValidationMessageFor(Function(model) model.JobStatus)
</div>
<div class="editor-label">
@Html.LabelFor(Function(model) model.JobAmount)
</div>
<div class="editor-field">
@Html.EditorFor(Function(model) model.JobAmount)
@Html.ValidationMessageFor(Function(model) model.JobAmount)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
End Using
<div>
@Html.ActionLink("Back to List", "Index")
</div>
我甚至不需要在表单上显示客户ID,但需要使用传递给控制器的参数和用户选择的其他信息创建新对象。
答案 0 :(得分:1)
方法1:如果要显示customerId,则可以使用以下代码...
<div class="editor-label">
@Html.LabelFor(Function(model) model.CustomerId)
</div>
这样,将显示CustomerId,用户无法更改它,当回发完成时,此值仍作为模型的一部分出现。
方法2:如果您不想显示,但仍然将其用于上述目的,请使用下面编写的代码...
<div class="editor-label">
@Html.HiddenFor(Function(model) model.CustomerId)
</div>
希望这是你想要的。