我正在努力做搜索者。它应该在表格维修中搜索价格。 我不知道如何解决这个问题。我唯一的想法是使用float.Parse方法将字符串解析为float,但它不起作用。
模型
// For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
namespace CallCenterService.Controllers
{
public class AccountantController : Controller
{
private readonly DatabaseContext _context;
public AccountantController(DatabaseContext context)
{
_context = context;
}
// GET: /<controller>/
public async Task<IActionResult> Index(string searchServicePrice, string searchPartsPrice, string searchSummaryPrice)
{
var name = from m in _context.Repairs
select m;
if (!String.IsNullOrEmpty(searchServicePrice))
{
float.Parse(searchServicePrice, CultureInfo.InvariantCulture.NumberFormat);
name = name.Where(s => s.Price.Equals(searchServicePrice));
}
查看
@model IEnumerable<CallCenterService.Models.Repair>
@{
ViewData["Title"] = "Index";
}
<h2>Index</h2>
<form asp-controller="Accountant" asp-action="Index" method="get">
<p>
Service Price : <input type="text" name="searchServicePrice">
Parts Price : <input type="text" name="searchPartsPrice">
Summary Price: <input type="text" name="searchSummaryPrice">
<input type="submit" value="Filter" />
</p>
</form>
答案 0 :(得分:1)
您需要传递已解析的项目,因为Parse
方法返回float
。像这样:
float parsedNum = float.Parse(searchServicePrice, CultureInfo.InvariantCulture.NumberFormat);
name = name.Where(s => s.Price.Equals(parsedNum));
另请查看decimal.Parse
,decimal.TryParse
和float.TryParse
,因为如果Parse
失败,则会引发异常。 TryParse
不会抛出异常。