Dashless GUID未使用DropDownListFor

时间:2015-10-08 11:36:39

标签: c# asp.net asp.net-mvc html.dropdownlistfor

我有一个页面,它接受参数x(这是一个GUID)。 在页面上我有一个

HTML.DropDownListFor(x => x.SomeGuidProperty).

如果我将URL中的参数x指定为43f67d68-066d-4fda-94a8-3e3e4c7c278a(带破折号),则下拉选择重新选择的选项。 但是如果我在URL中将参数x指定为43f67d68066d4fda94a83e3e4c7c278a(仍然是GUID,但没有破折号) - DropDownList会忽略它。

不可能确保单一格式的GUID,因为页面由不同的来源使用。

如何使DropDownList理解参数x?

1 个答案:

答案 0 :(得分:0)

您需要绑定到字符串,然后以编程方式转换为Guid,而不是直接绑定到Guid。例如,而不是像:

public ActionResult Foo(Guid x)

您需要:

public Actionresult Foo(string x)

然后在内部,您希望格式化x,因为Guid应格式化,如果在将其转换为实际Guid之前尚未格式化:var guid = new Guid(x)var cards = Card.find().sort('-created').exec(function (err, cards) { if (err) { return res.status(400).send({ message: errorHandler.getErrorMessage(err) }); } else { res.json(cards); } });