所以基本上我的模型中有一个bool,在我看来我有一个隐藏的字段,当我选择了某个选择框时,我设置为true或false。现在我有了这个,我需要以某种方式检查隐藏字段的值和控制器中bool的值。如果确实如此,我想运行一个方法,如果它是假的,我希望它跳过该方法。
这是我的html隐藏字段位于底部:
<div id="addTransfereeForm" class= "invisible" "whiteborder">
<form name="addTransferee" id="addTransferee">
<p><b><u>Add a New Transferee</u></b></p>
Transfer Effective Date: <input type="text" name="transfereffectivedate" class="datepicker"<br /> <br />
Transferee Name: <input type="text" name="transfereename" /><br />
Transferee Notice Address Line 1: <input type="text" name="transfereenoticeaddressline1" /><br />
Transferee Notice Address Line 2: <input type="text" name="transfereenoticeaddressline2" /><br />
Transferee Notice City: <input type="text" name="transfereenoticecity" /><br />
Transferee Notice State: <input type="text" name="transfernoticestate" /><br />
Transferee Notice Zip: <input type="text" name="tranfernoticezup" /><br />
Transferee Notice Phone: <input type="text" name="transfereenoticephone" /><br />
Transferee Payment Address Line 1: <input type="text" name="transfereepaymentaddressline1" /><br />
Transferee Payment Address Line 2: <input type="text" name="transfereepaymentaddressline2" /><br />
Transferee Payment City: <input type="text" name="transfereepaymentcity" /><br />
Transferee Payment State: <input type="text" name="transfereepaymentstate" /><br />
Transferee Payment Zip: <input type="text" name="transfereepaymentzip" /><br />
Transferee Payment Phone: <input type="text" name="transfereepaymentphone" /><br />
<input type="hidden" name="newtransferee" />
</form>
</div>
这是我的模型(NewTransferee是我设置为true或false的bool):
public class CreateTransferee
{
public DateTime? TransferEffectiveDate { get; set; }
public string TransfereeName { get; set; }
public string TransfereeNoticeAddressLine1 { get; set; }
public string TransfereeNoticeAddressLine2 { get; set; }
public string TransfereeNoticeCity { get; set; }
public string TransfereeNoticeState { get; set; }
public string TransfereeNoticeZip { get; set; }
public string TransfereeNoticePhone { get; set; }
public string TransfereePaymentAddressLine1 { get; set; }
public string TransfereePaymentAddressLine2 { get; set; }
public string TransfereePaymentCity { get; set; }
public string TransfereePaymentState { get; set; }
public string TransfereePaymentZip { get; set; }
public string TransfereePaymentPhone { get; set; }
public bool NewTransferee { get; set; }
}
这是我的控制器(我需要编辑它以使其在运行结束部分之前检查bool值):
[NoCache]
[HttpPost]
[ValidateAntiForgeryToken]
public JsonResult ResolveProfileSelectionRequired(ResolveProfileSelectionRequiredModel model)
{
var resolved = SqlDataProvider.ResolveProfileSelectionRequiredJobException(model);
return resolved ? Json("Success") : Json("Failed");
}
最后,如果bool为true,我创建的方法可以运行(这位于SQLDataProvider.cs中):
public static int CreateNewTransferee(CreateTransferee model)
{
using (var db = new NJB.NJBDataContext())
{
var result = db.SP_AddTransferee(
model.TransferEffectiveDate,
model.TransfereeName,
model.TransfereeNoticeAddressLine1,
model.TransfereeNoticeAddressLine2,
model.TransfereeNoticeCity,
model.TransfereeNoticeState,
model.TransfereeNoticeZip,
model.TransfereeNoticePhone,
model.TransfereePaymentAddressLine1,
model.TransfereePaymentAddressLine2,
model.TransfereePaymentCity,
model.TransfereePaymentState,
model.TransfereePaymentZip,
model.TransfereePaymentPhone);
return (int) result.ReturnValue;
}
}
答案 0 :(得分:1)
使用新参数扩展控制器操作:
public JsonResult ResolveProfileSelectionRequired(ResolveProfileSelectionRequiredModel model, bool newtransferee = false)
并在行动中检查。
答案 1 :(得分:1)
如果你需要做的就是检查一个布尔值,那只是一个条件语句:
public JsonResult ResolveProfileSelectionRequired(ResolveProfileSelectionRequiredModel model)
{
if (model.NewTransferee)
{
// do something
}
else
{
// do something else
}
}
但目标并不完全清楚,因为您当前的return
语句取决于您只想有条件地调用的方法的输出。所有代码路径都需要返回某些内容。也许是这样的?:
public JsonResult ResolveProfileSelectionRequired(ResolveProfileSelectionRequiredModel model)
{
if (model.NewTransferee)
{
var resolved = SqlDataProvider.ResolveProfileSelectionRequiredJobException(model);
return resolved ? Json("Success") : Json("Failed");
}
else
{
return Json("Success");
}
}
同样,如果不了解更多关于此行动的预期行为,我无法知道。
值得注意的是,这不是真正的“MVC”。最简单的说,这个action方法只是一个接收类型为ResolveProfileSelectionRequiredModel
的参数的方法。条件语句只是简单的C#。返回值的所有代码路径都是普通的C#。关于这种方法的唯一“MVC”是它返回JsonResult
。
修改:我刚刚注意到......您正在寻找的值是CreateTransferee
型号,但您的控制器正在接收ResolveProfileSelectionRequiredModel
?这个值是ResolveProfileSelectionRequiredModel
吗?他们似乎非常相似。如果它不在该模型上,您可以将其添加到该模型或使用@ Raidri的方法将其添加为控制器操作的显式参数。
答案 2 :(得分:0)
您可以使用:
if (Request.Form["newtransferee"].ToLower() == "true")
或者如果你写这个而不是手工html吗?
@Html.HiddenFor(model => model.NewTransferee)